home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-01-03 | 205.8 KB | 5,149 lines |
- Interrupt List, part 18 of 18
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
- --------r-92---------------------------------
- INT 92 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------N-92---------------------------------
- INT 92 - Sangoma X.25 INTERFACE PROGRAM
- BX:DX -> control block
- SeeAlso: INT 68"Sangoma"
- --------e-92E1-------------------------------
- INT 92 - Da Vinci eMail Dispatcher INTERFACE
- AH = E1h
- AL = function
- BX = stack count (number of words to push)
- CX:DX -> stack data (in word-reversed order ready to push)
- Return: AX = status (see #03979)
- Note: preserves BP, DS, SI, DI; other registers may be destroyed
-
- (Table 03979)
- Values for Da Vinci eMail function status:
- 0001h success
- FF97h "ERS_NOT_AVAILABLE"
- FF99h "ERS_TOO_MANY_NAMES"
- FF9Ah "ERS_BAD_NAME_PASSWORD"
- FFE3h "ERS_NAME_NOT_FOUND"
- FFF8h "ERS_USE_STRING" (call NetGetError to get error string)
- FFFFh "ERS_NO_SUCH_FILE"
- --------e-92E100-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
- AX = E100h
- BX = size of parameter block in words (000Ah)
- CX:DX -> parameter block (see #03980)
- Return: AX = 0001h success
- Desc: this function is used to initialize the dispatcher
- SeeAlso: AX=E101h,AX=E103h
-
- Format of Da Vinci eMail "NetInitStart" parameter block:
- Offset Size Description (Table 03980)
- 00h WORD segment of ???
- 02h WORD offset of ???
- 04h WORD high part of long ???
- 06h WORD low part of long ???
- 08h WORD high part of long ???
- 0Ah WORD low part of long ???
- 0Ch WORD high part of long ???
- 0Eh WORD low part of long ???
- 10h WORD high part of long ???
- 12h WORD low part of long ???
- --------e-92E101BX0000-----------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
- AX = E101h
- BX = 0000h
- CX:DX ignored
- Return: AX = 0001h success
- SeeAlso: AX=E100h,AX=E180h
- --------e-92E102BX0000-----------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
- AX = E102h
- BX = 0000h
- CX:DX ignored
- Return: AX = 0001h success
- Desc: this function is used to determine if the dispatcher is loaded
- SeeAlso: AX=E10Bh,AX=E180h
- --------e-92E103BX0000-----------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
- AX = E103h
- BX = 0000h
- CX:DX ignored
- Return: AX = status (see #03979)
- SeeAlso: AX=E100h
- --------e-92E104-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
- AX = E104h
- BX = size of parameter block in words (0006h)
- CX:DX -> parameter block (see #03981)
- Return: AX = status (see #03979)
- Desc: this function is used to verify node address for usernames
- SeeAlso: AX=E180h
-
- Format of Da Vinci eMail "NetWhereIs" parameter block:
- Offset Size Description (Table 03981)
- 00h WORD segment of node address buffer
- 02h WORD offset of node address buffer
- 04h WORD segment of uppercase username
- 06h WORD offset of uppercase username
- 08h WORD segment of "DVSEMAIL"
- 0Ah WORD offset of "DVSEMAIL"
- --------e-92E105-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
- AX = E105h
- BX = size of parameter block in words (0007h)
- CX:DX -> parameter block (see #03982)
- Return: AX = 0000h Error
- AX = handle
- Desc: this function is used to open a submission channel
- SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
-
- Format of Da Vinci eMail "NetOpen" parameter block:
- Offset Size Description (Table 03982)
- 00h WORD operation (1 = read, 2 = write)
- 02h WORD segment of uppercase To: username
- 04h WORD offset of uppercase To: username
- 06h WORD segment of "DVSEMAIL"
- 08h WORD offset of "DVSEMAIL"
- 0Ah WORD segment of node address
- 0Ch WORD offset of node address
- --------e-92E106BX0004-----------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetRead"
- AX = E106h
- BX = 0004h
- CX:DX -> parameter block
- Return: AX = 0001h
- SeeAlso: AX=E108h
- --------e-92E107BX0002-----------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
- AX = E107h
- BX = 0002h
- CX:DX -> parameter block
- Return: AX = 0001h
- SeeAlso: AX=E109h,AX=E180h
- --------e-92E108-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
- AX = E108h
- BX = size of parameter block in words (0004h)
- CX:DX -> parameter block (see #03983)
- Return: AX = amount written
- Desc: This function is used to write transactions to the dispatcher.
- The command block is written first and then another call is used
- to write the associated data.
- SeeAlso: AX=E106h
-
- Format of Da Vinci eMail "NetWrite" parameter block:
- Offset Size Description (Table 03983)
- 00h WORD buffer count (see #03985)
- 02h WORD segment of command buffer (see #03984)
- 04h WORD offset of command buffer
- 06h WORD handle from NetOpen
-
- Format of Da Vinci eMail command buffer:
- Offset Size Description (Table 03984)
- 00h BYTE command
- 21h '!' Protocol commands for remote control
- 41h 'A' Authorization protocol element
- 42h 'B' Return(back) routing information
- Associated data is the From: username
- 43h 'C' Carbon Copy list
- Associated data is a comma delimitted list of usernames
- 44h 'D' Distribution list
- Associated data is a comma delimitted list of usernames
- 45h 'E' Mail end marker
- No associated data
- 48h 'H' Mail message header
- Associated data is a message header buffer
- 4Dh 'M' Mail message
- Associated data is the body of the message
- 4Fh 'O' Object
- 50h 'P' Paperclip attachment
- 52h 'R' Routing information
- Associated data is the To: username
- 53h 'S' Subject
- Associated data is the subject of the message
- 54h 'T' Trail of Reply/Forwards
- 01h BYTE subcommand
- 02h DWORD length of associated data
-
- Format of Da Vinci eMail message header buffer:
- Offset Size Description (Table 03985)
- 00h 30 BYTEs subject line
- 1Eh 24 BYTEs To
- 36h 24 BYTEs From
- 4Eh DWORD Time
- BYTE 00h
- BYTE hour
- BYTE minute
- BYTE second
- 52h DWORD Date
- BYTE 00h
- BYTE year
- BYTE month
- BYTE day
- 56h DWORD serial number (00000000h)
- 5Ah WORD mail types (see #03986)
- 5Ch WORD special types (0)
-
- Bitfields for Da Vinci eMail mail types:
- Bit(s) Description (Table 03986)
- 7 blind carbon copy
- 6 carbon copy
- 5 priority
- 4 confidential
- 3 certified
- 2 bulk
- 1-0 class (first, second, third, bulk)
- --------e-92E109-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
- AX = E109h
- BX = size of parameter block in words (0001h)
- CX:DX -> parameter block (see #03987)
- Return: AX = FF97h (ERS_NOT_AVAILABLE)
- SeeAlso: AX=E107h,AX=E180h
-
- Format of Da Vinci eMail "NetErrorFix" parameter block:
- Offset Size Description (Table 03987)
- 00h WORD ???
- --------e-92E10A-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetClose"
- AX = E10Ah
- BX = size of parameter block in words (0001h)
- CX:DX -> parameter block (see #03988)
- Return: AX = 0001h
- Desc: this function is used to close a dispatcher handle
- SeeAlso: AX=E105h
-
- Format of Da Vinci eMail "NetClose" parameter block:
- Offset Size Description (Table 03988)
- 00h WORD handle from NetOpen
- --------e-92E10B-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
- AX = E10Bh
- BX = size of parameter block in words (0004h)
- CX:DX -> parameter block (see #03989)
- Return: AX = 0001h
- SeeAlso: AX=E102h,AX=E10Ch
-
- Format of Da Vinci eMail "NetCheckQueue" parameter block:
- Offset Size Description (Table 03989)
- 00h WORD segment of 24-byte username buffer
- 02h WORD offset of 24-byte username buffer
- 04h WORD segment of 24-byte protocol buffer
- 06h WORD offset of 24-byte protocol buffer
- --------e-92E10C-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
- AX = E10Ch
- BX = size of parameter block in words (0002h)
- CX:DX -> parameter block (see #03990)
- Return: AX = 0001h
- SeeAlso: AX=E10Bh
-
- Format of Da Vinci eMail "NetReadQueue" parameter block:
- Offset Size Description (Table 03990)
- 00h WORD Segment of 128 byte node address buffer
- 02h WORD Offset of 128 byte node address buffer
- --------e-92E10D-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
- AX = E10Dh
- BX = size of parameter block in words (0006h)
- CX:DX -> parameter block (see #03991)
- Return: AX = status (see #03979)
- Desc: this function is used to verify username/password
- SeeAlso: AX=E10Eh
-
- Format of Da Vinci eMail "NetSubmitName" parameter block:
- Offset Size Description (Table 03991)
- 00h WORD segment of uppercase password string
- 02h WORD offset of uppercase password string
- 04h WORD segment of uppercase username string
- 06h WORD offset of uppercase username string
- 08h WORD segment of "DVSEMAIL"
- 0Ah WORD offset of "DVSEMAIL"
- --------e-92E10E-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
- AX = E10Eh
- BX = size of parameter block in words (0004h)
- CX:DX -> parameter block (see #03992)
- Return: AX = 0001h
- Desc: this function is used to remove a username
- SeeAlso: AX=E10Dh
-
- Format of Da Vinci eMail "NetRemoveName" parameter block:
- Offset Type Description (Table 03992)
- 00h WORD segment of uppercase username
- 02h WORD offset of uppercase username
- 04h WORD segment of "DVSEMAIL"
- 06h WORD offset of "DVSEMAIL"
- --------e-92E10FBX0000-----------------------
- INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
- AX = E10Fh
- BX = 0000h
- CX:DX ignored
- Return: AX = 0001h
- SeeAlso: AX=E180h
- --------e-92E110-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
- AX = E110h
- BX = size of parameter block in words (0006h)
- CX:DX -> parameter block (see #03993)
- Return: AX = 0001h
- SeeAlso: AX=E111h,AX=E113h
-
- Format of Da Vinci eMail "NetGetAltRoute" parameter block:
- Offset Size Description (Table 03993)
- 00h 6 WORDs ???
- --------e-92E111-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
- AX = E111h
- BX = size of parameter block in words (0004h)
- CX:DX -> parameter block (see #03994)
- Return: AX = 0001h
- SeeAlso: AX=E110h,AX=E113h
-
- Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
- Offset Size Description (Table 03994)
- 00h 4 WORDs ???
- --------e-92E112-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
- AX = E112h
- BX = size of parameter block in words (0008h)
- CX:DX -> parameter block (see #03995)
- Return: AX = 0001h
- SeeAlso: AX=E180h
-
- Format of Da Vinci eMail "NetChangePassword" parameter block:
- Offset Size Description (Table 03995)
- 00h 8 WORDs ???
- --------e-92E113-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
- AX = E113h
- BX = size of parameter block in words (0008h)
- CX:DX -> parameter block (see #03996)
- Return: AX = 0001h
- SeeAlso: AX=E110h,AX=E111h
-
- Format of Da Vinci eMail "NetSetAltRoute" parameter block:
- Offset Size Description (Table 03996)
- 00h 8 WORDs ???
- --------e-92E175-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
- AX = E175h
- Return: AX = 0012h
- BX = PSP
- SeeAlso: AX=E180h
- --------e-92E180-----------------------------
- INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
- AX = E180h
- Return: AX = 0012h if installed
- ES:DX -> '$'-terminated driver information string
- SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
- --------r-93---------------------------------
- INT 93 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------N-93---------------------------------
- INT 93 - IBM TOKEN RING ADAPTER - ???
- SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
- --------r-94---------------------------------
- INT 94 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------s-94----SI0000-----------------------
- INT 94 u - PCM driver - INITIALIZE SOUND
- SI = 0000h
- ES:BX -> parameters
- Return: ???
- Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
- sound boards
- InstallCheck: test for the signature string "PCMDRIVER" immediately preceding
- the interrupt handler; the word preceding the signature gives the PCM
- driver's version
- SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
- Index: installation check;PCM driver|PCM.COM;installation check
- Index: PCM driver;installation check
- --------s-94----SI0001-----------------------
- INT 94 u - PCM driver - INITIALIZE PCM
- SI = 0001h
- ES:BX -> parameters
- Return: ???
- SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
- --------s-94----SI0002-----------------------
- INT 94 u - PCM driver - INITIALIZE PCM INFO
- SI = 0002h
- ES:BX -> parameters (see #03997)
- Return: ???
- SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
-
- Format of PCM driver function 0002h parameters:
- Offset Size Description (Table 03997)
- 00h DWORD rate
- 04h WORD channel number
- 06h WORD "comp"
- 08h WORD "dsize"
- --------s-94----SI0003-----------------------
- INT 94 u - PCM driver - INITIALIZE DMA BUFFER
- SI = 0003h
- ES:BX -> parameters (see #03998)
- Return: ???
- SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
-
- Format of PCM driver function 0003h parameters:
- Offset Size Description (Table 03998)
- 00h DWORD -> DMA buffer
- 04h WORD size of DMA buffer
- 06h WORD number of divisions
- --------s-94----SI0004-----------------------
- INT 94 u - PCM driver - INITIALIZE USER FUNCTION
- SI = 0004h
- ES:BX -> parameters (see #03999)
- Return: ???
- SeeAlso: SI=0000h,SI=0001h
-
- Format of PCM driver function 0004h parameters:
- Offset Size Description (Table 03999)
- 00h DWORD -> user function
- --------s-94----SI0005-----------------------
- INT 94 u - PCM driver - BEGIN AUDIO PLAY
- SI = 0005h
- Return: ???
- SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
- --------s-94----SI0006-----------------------
- INT 94 u - PCM driver - BEGIN AUDIO RECORD
- SI = 0006h
- Return: ???
- SeeAlso: SI=0005h,SI=0007h,SI=0009h
- --------s-94----SI0007-----------------------
- INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
- SI = 0007h
- Return: ???
- SeeAlso: SI=0005h,SI=0006h,SI=0008h
- --------s-94----SI0008-----------------------
- INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
- SI = 0008h
- Return: ???
- SeeAlso: SI=0007h
- --------s-94----SI0009-----------------------
- INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
- SI = 0009h
- Return: ???
- SeeAlso: SI=0005h,SI=0006h,SI=0007h
- --------s-94----SI000A-----------------------
- INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
- SI = 000Ah
- Return: ???
- SeeAlso: SI=0000h,SI=0001h,SI=0003h
- Index: uninstall;PCM driver
- --------s-94----SI000B-----------------------
- INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
- SI = 000Bh
- ES:BX -> parameters (see #04000)
- Return: ???
- SeeAlso: SI=0003h
-
- Format of PCM driver functio 000Bh parameters:
- Offset Size Description (Table 04000)
- 00h DWORD -> memory block to contain DMA buffer
- 04h WORD desired size of DMA buffer
- --------s-94----SI000D-----------------------
- INT 94 u - Media Vision PCM.COM - GET STATUS
- SI = 000Dh
- Return: AX = status (0000h = waiting) (see #04001)
-
- Bitfields for PCM.COM status:
- Bit(s) Description (Table 04001)
- 0 playing
- 1 recording
- 2 SBplaying
- 3 SBrecording
- 14 SBpaused
- 15 paused
- --------s-94----SI8000-----------------------
- INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
- SI = 8000h
- Return: DX:AX -> DMA buffer
- Program: PCM.COM is a superset of the standard PCM driver which provides
- additional functions for fine control of the driver
- InstallCheck: for the Media Vision PCM.COM "shark" functions, test for the
- signature "PCM-SHARK" at offset 107h in the INT 94 handler's segment
- SeeAlso: SI=8001h,SI=8004h
- Index: installation check;Media Vision PCM.COM|PCM.COM;installation check
- Index: Media Vision PCM.COM;"shark" functions
- --------s-94----SI8001-----------------------
- INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
- SI = 8001h
- Return: AX = DMA buffer size
- DX = divisions
- SeeAlso: SI=8000h
- --------s-94----SI8002-----------------------
- INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
- SI = 8002h
- Return: AX = status
- 0000h if board not at specified I/O address
- other if board found
- Note: the I/O address is specified by ORing the base I/O port shifted left
- four bits into SI before calling INT 94
- SeeAlso: SI=8000h
- --------s-94----SI8004-----------------------
- INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
- SI = 8004h
- Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
- DX = size of buffer in note structures
- SeeAlso: SI=8000h
- --------s-94----SI8005-----------------------
- INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
- SI = 8005h
- Return: ???
- --------s-94----SI8011-----------------------
- INT 94 u - Media Vision PCM.COM - INITIALIZE
- SI = 8011h
- ES:BX -> "iobf91" structure
- Return: ???
- --------s-94----SI8012-----------------------
- INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
- SI = 8012h
- ES:BX -> "i94f92buf" structure
- Return: ???
- SeeAlso: SI=8013h,SI=8014h
- --------s-94----SI8013-----------------------
- INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
- SI = 8013h
- Return: AX = number of sounds used
- DX = maximum handles
- --------s-94----SI8014-----------------------
- INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
- SI = 8014h
- ES:BX -> "i94f92buf" structure to be filled in
- sound number field set to desired sound
- Return: AX = status
- 0000h successful
- FFFFh sound number out of range
- SeeAlso: SI=8012h,SI=8013h
- --------s-94----SI8015-----------------------
- INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
- SI = 8015h
- ES:BX -> DMA info structure (see #04002)
- Return: ???
-
- Format of PCM.COM DMA info structure:
- Offset Size Description (Table 04002)
- 00h DWORD -> DMA buffer (offset FFFFh = return current buffer info)
- 04h WORD DMA buffer size
- 06h WORD divisions
- --------s-94----SI8016-----------------------
- INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
- SI = 8016h
- AX = hotkey number (01h-08h)
- Return: ???
- SeeAlso: AL=02h/SI=8017h
- --------s-94--01SI8017-----------------------
- INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
- AL = 01h
- SI = 8017h
- AH = new state (00h off, 01h on)
- Return: ???
- SeeAlso: AL=02h/SI=8017h
- --------s-94--02SI8017-----------------------
- INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
- AL = 02h
- SI = 8017h
- AH = new state (00h off, 01h on)
- Return: ???
- --------s-94--04SI8017-----------------------
- INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
- AL = 04h
- SI = 8017h
- AH = new state
- 00h off
- 01h on
- CX = minimum delay
- DX = maximum delay
- Return: ???
- --------s-94--08SI8017-----------------------
- INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
- AL = 08h
- SI = 8017h
- AH = new state
- 00h off
- 01h on
- DX:CX = delay
- Return: ???
- SeeAlso: AL=10h/SI=8017h
- --------s-94--10SI8017-----------------------
- INT 94 u - Media Vision PCM.COM - TIMER CONTROL
- AL = 10h
- SI = 8017h
- AH = timer options (see #04003)
- DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
- Return: ???
- SeeAlso: AL=08h/SI=8017h
-
- Bitfields for PCM.COM timer options:
- Bit(s) Description (Table 04003)
- 7 set timer
- 6 timer active (timer turned off if clear)
- 5-0 timer number
- --------s-94----SI8018-----------------------
- INT 94 u - Media Vision PCM.COM - GET INFO
- SI = 8018h
- AL = what to get
- 00h "F92state"
- 01h "F92bkgd"
- 02h "I10timer"
- 03h "I08state"
- Return: DX:AX -> desired information
- --------r-95---------------------------------
- INT 95 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-95---------------------------------
- INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
- Note: use only when the R= option is invoked on entering APL
- --------r-96---------------------------------
- INT 96 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------U-96---------------------------------
- INT 96 U - KILL.COM, QKILL.COM - POP UP
- Program: KILL.COM is a TSR utility that allows you to terminate programs
- by calling INT 21/AH=4Ch or reboot the computer (author unknown);
- QKILL.COM is a modification of KILL.COM by Solar Designer that
- supports QEMM's Quick Boot feature
- Notes: This interrupt is intercepted but not chained by KILL.COM; it is never
- called by KILL.COM itself. It points into the middle of KILL.COM's
- INT 09 handler and assumes specific values have been placed on the
- stack (thus it can't be called as an interrupt).
- To invoke KILL, use the following code:
- pushf
- push cs
- push offset $+0Dh
- push ax
- push es
- push 0
- pop es
- jmp dword ptr es:[96h*4]
- --------r-97---------------------------------
- INT 97 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-98---------------------------------
- INT 98 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-99---------------------------------
- INT 99 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-9A---------------------------------
- INT 9A - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 99,INT 9B
- --------r-9B---------------------------------
- INT 9B - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
- --------r-9C---------------------------------
- INT 9C - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
- --------v-9C---------------------------------
- INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
- SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
- --------r-9D---------------------------------
- INT 9D - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
- --------v-9D---------------------------------
- INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
- Note: this vector is used by the virus to store the result of a call to
- INT 2F/AH=13h
- SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
- --------r-9E---------------------------------
- INT 9E - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
- --------v-9E---------------------------------
- INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
- SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
- --------r-9F---------------------------------
- INT 9F - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
- --------v-9F---------------------------------
- INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
- Note: while it is infecting a file, the INT13 virus grabs INT 13 and uses
- this interrupt to store the existing INT 13 vector for later
- restoration
- SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"
- --------r-A0---------------------------------
- INT A0 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
- --------r-A0---------------------------------
- INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
- SeeAlso: INT 59"GSS"
- --------r-A1---------------------------------
- INT A1 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
- --------r-A2---------------------------------
- INT A2 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
- --------r-A3---------------------------------
- INT A3 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
- --------r-A4---------------------------------
- INT A4 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
- --------U-A4---------------------------------
- INT A4 U - Right Hand Man - API
- AH = function number (v3.3 supports functions 00h-52h)
- Return: CF set on error
- CF clear if successful
- Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
- which has evolved into Futurus Team
- Note: this interrupt is only hooked while popped up
- SeeAlso: INT 2F/AX=A4E0h
- --------r-A5---------------------------------
- INT A5 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
- --------r-A6---------------------------------
- INT A6 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
- --------r-A7---------------------------------
- INT A7 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-A8---------------------------------
- INT A8 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-A9---------------------------------
- INT A9 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AA---------------------------------
- INT AA - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AB---------------------------------
- INT AB - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AC---------------------------------
- INT AC - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AD---------------------------------
- INT AD - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AE---------------------------------
- INT AE - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-AF---------------------------------
- INT AF - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-B0---------------------------------
- INT B0 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-B1---------------------------------
- INT B1 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-B2---------------------------------
- INT B2 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-B3---------------------------------
- INT B3 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------U-B370-------------------------------
- INT B3 - ZIPKEY - GET VERSION
- AH = 70h
- Return: AH = major version
- AL = minor version
- CL = number of states and territories in current database
- DH = year of current database - 1900
- DL = month of current database's file date
- Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
- Note: if installed, the string "ZIPKEY" is present at offset 75h in the
- interrupt handler's segment, and the byte at 7Bh contains the API
- version number (00h for v1.x, 01h for v2.0)
- --------U-B371-------------------------------
- INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
- AH = 71h
- BX = abbreviation, in either case (first letter in BL)
- Return: CF set on error
- AL = FFh
- CF clear if successful
- AL = ZIPKEY state code
- SeeAlso: AH=72h
- --------U-B372-------------------------------
- INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
- AH = 72h
- BL = ZIPKEY state code
- Return: CF set on error
- AX destroyed
- CF clear if successful
- AX = abbreviation, in upper case
- SeeAlso: AH=71h,AH=73h
- --------U-B373-------------------------------
- INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
- AH = 73h
- BL = ZIPKEY state code
- ES:DI -> buffer for name
- Return: CF set on error
- AX destroyed
- CF clear if successful
- ES:DI points one byte beyond end of name
- SeeAlso: AH=72h
- --------U-B374-------------------------------
- INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
- AH = 74h
- DX = zipcode region (0-999)
- CH = last two digits of zipcode (0-99)
- ES:DI -> buffer
- Return: CF set on error
- AX destroyed
- CF clear if successful
- ES:DI points one byte beyond end of digit string
- --------U-B375-------------------------------
- INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
- AH = 75h
- DX = zipcode region (0-999)
- CH = last two digits of zipcode (0-99)
- Return: CF set on error (zipcode not found)
- AL = suggested state code, FFh if none
- CF clear if successful
- AL = ZIPKEY state code
- BX = area code (v2.0+)
- SeeAlso: AH=76h,AH=79h
- --------U-B376-------------------------------
- INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
- AH = 76h
- DX = zipcode region (0-999)
- CH = last two digits of zipcode (0-99)
- ES:DI -> buffer for name
- Return: CF set on error
- AL = suggested state code, FFh if none
- ES:DI buffer filled with suggested city name
- CF clear if successful
- AL = ZIPKEY state code
- BX = area code (v2.0+)
- ES:DI points one byte beyond end of name
- SeeAlso: AH=75h,AH=78h,AH=7Eh
- --------U-B377-------------------------------
- INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
- AH = 77h
- DX = zipcode region (0-999)
- CH = last two digits of zipcode (0-99)
- BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
- Return: CF set on error
- AX destroyed
- CF clear if successful
- zipcode specification as defined by the BX keystroke is placed in
- keyboard buffer, as if the user had popped up ZIPKEY and exited
- by pressing the key specified by BX
- --------U-B378-------------------------------
- INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
- AH = 78h
- BL = ZIPKEY state code
- DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
- Return: BH = number of matching entries (set to 51 if more than 50)
- DX = zipcode region of first match (0-999)
- CL = last two digits of first zipcode in the range (0-99)
- CH = last two digits of last zipcode in the range (0-99)
- AX destroyed
- SeeAlso: AH=79h,AH=7Ah
- --------U-B379-------------------------------
- INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
- AH = 79h
- BL = ZIPKEY state code of first state to search
- DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
- Return: AL = ZIPKEY state code of first matching state
- BH = number of matching entries (set to 51 if more than 50)
- DX = zipcode region of first match (0-999)
- CL = last two digits of first zipcode in first range (0-99)
- CH = last two digits of last zipcode in first range (0-99)
- Note: to find all matching cities, repeat search with BL set to one more than
- the returned AL
- SeeAlso: AH=78h,AH=7Ah
- --------U-B37A-------------------------------
- INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
- AH = 7Ah
- BL = case number (0 to one less than value returned in BH by lookup)
- Return: AL = ZIPKEY state code
- DX = zipcode region (0-999)
- CL = last two digits of first zipcode in the range (0-99)
- CH = last two digits of last zipcode in the range (0-99)
- SeeAlso: AH=78h,AH=79h
- --------U-B37B-------------------------------
- INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
- AH = 7Bh
- Return: BL = maximum number of characters for a city name
- BH = ZIPKEY state code for last city-name search, or FFh if none
- CX:DX = internal code identifying last city search
- AX destroyed
- SeeAlso: AH=7Ch
- --------U-B37C-------------------------------
- INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
- AH = 7Ch
- BL = maximum number of characters for a city name
- BH = ZIPKEY state code for last city-name search, or FFh if none
- CX:DX = internal code returned by AH=7Bh
- Return: CF set on error
- CF clear if successful
- AX destroyed
- SeeAlso: AH=7Bh
- --------U-B37D-------------------------------
- INT B3 - ZIPKEY - REQUEST POP UP
- AH = 7Dh
- BL = index number to simulate pressing a hotkey
- FFh for immediate popup with no playback on return
- Return: CF set on error
- AL = error code
- FDh already busy with another request
- FEh illegal function
- CF clear if successful
- AX destroyed
- window popped up and was closed by the user
- SeeAlso: AH=70h
- --------U-B37E-------------------------------
- INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
- AH = 7Eh
- DX = zipcode region (0-999)
- ES:DI -> buffer for name
- Return: CF set on error
- AL = FFh region does not exist
- CF clear if successful
- AL = ZIPKEY state code
- ES:DI points one byte beyond end of name
- SeeAlso: AH=76h
- --------U-B37F-------------------------------
- INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
- AH = 7Fh
- BL = function
- 00h turn off hotkeys
- 01h turn on hotkeys
- 02h return hotkey status
- 03h toggle hotkey status
- Return: AL = hotkey status
- 00h off
- 01h on
- --------U-B380-------------------------------
- INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
- AH = 80h
- BX = telephone area code (decimal)
- Return: CF clear if successful
- AL = ZIPKEY state code
- DX = first ZIP region for state (03E8h if Canada)
- CX = number of ZIP regions in state
- CF set on error
- AL = FFh
- DX = 03E9h
- --------r-B4---------------------------------
- INT B4 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-B4---------------------------------
- INT B4 - StackMan - REQUEST NEW STACK
- Return: SS:SP -> new stack
- Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
- which functions as a replacement for the DOS STACK= command as well
- as permitting multiple TSRs to share a pool of stack space
- InstallCheck: test for the string "STACKXXX" at offset 0Ah from the
- interrupt handler
- SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
- Index: installation check;STACKMAN
- --------r-B5---------------------------------
- INT B5 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
- --------r-B5---------------------------------
- INT B5 - StackMan - RESTORE ORIGINAL STACK
- SS:SP -> stack returned by INT B4
- Return: SS:SP restored to value before INT B4
- SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
- --------m-B5---------------------------------
- INT B5 U - Netroom NETSWAP4 - ???
- ???
- Return: ???
- SeeAlso: INT 31/AH=57h
- --------r-B6---------------------------------
- INT B6 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
- --------y-B6---------------------------------
- INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
- Program: TBFence is a security program by ESaSS B.V. which transparently
- encrypts floppies and optionally allows only encrypted diskettes to
- be accessed
- Note: the low word of this vector (0000h:02D8h) contains the segment of the
- TBFence INT 13h code, which starts with the signature word E487h;
- this forms the installation check
- the highest byte of this vector contains the start of a FAR JMP
- instruction to ???
- SeeAlso: INT B7"TBFENCE"
- Index: installation check;TBFence
- --------r-B7---------------------------------
- INT B7 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
- --------y-B7---------------------------------
- INT B7 - TBFENCE - ???
- SeeAlso: INT B6"TBFENCE"
- --------r-B8---------------------------------
- INT B8 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
- --------r-B9---------------------------------
- INT B9 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-BA---------------------------------
- INT BA - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-BB---------------------------------
- INT BB - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-BC---------------------------------
- INT BC - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-BD---------------------------------
- INT BD - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-BE---------------------------------
- INT BE - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
- --------Q-BE---------------------------------
- INT BE - DESQview/X - ???
- Note: points at an IRET
- SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
- --------r-BF---------------------------------
- INT BF - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
- --------r-C0---------------------------------
- INT C0 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
- --------d-C0---------------------------------
- INT C0 - AMI BIOS - DRIVE 0 DATA
- Note: this vector is used by some AMI BIOSes to store the first four bytes
- of the hard disk parameter table
- SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C1"AMI",INT C2"AMI"
- SeeAlso: INT C3"AMI",INT C4"AMI"
- --------r-C1---------------------------------
- INT C1 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
- --------d-C1---------------------------------
- INT C1 - AMI BIOS - DRIVE 0 DATA
- Note: this vector is used by some AMI BIOSes to store the second four bytes
- of the hard disk parameter table
- SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI",INT C2"AMI"
- SeeAlso: INT C3"AMI"
- --------r-C2---------------------------------
- INT C2 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
- --------d-C2---------------------------------
- INT C2 - AMI BIOS - DRIVE 0 DATA
- Note: this vector is used by some AMI BIOSes to store the third four bytes
- of the hard disk parameter table
- SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
- --------r-C3---------------------------------
- INT C3 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
- --------d-C3---------------------------------
- INT C3 - AMI BIOS - DRIVE 0 DATA
- Note: this vector is used by some AMI BIOSes to store the final four bytes
- of the hard disk parameter table
- SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
- --------r-C4---------------------------------
- INT C4 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
- --------d-C4---------------------------------
- INT C4 - AMI BIOS - DRIVE 1 DATA
- Note: this vector is used by some AMI BIOSes to store the first four bytes
- of the second hard disk's parameter table
- SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C5"AMI"
- SeeAlso: INT C6"AMI",INT C7"AMI"
- --------r-C5---------------------------------
- INT C5 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
- --------d-C5---------------------------------
- INT C5 - AMI BIOS - DRIVE 1 DATA
- Note: this vector is used by some AMI BIOSes to store the second four bytes
- of the second hard disk's parameter table
- SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
- SeeAlso: INT C6"AMI",INT C7"AMI"
- --------r-C6---------------------------------
- INT C6 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
- --------r-C6---------------------------------
- INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 86"APL"
- --------d-C6---------------------------------
- INT C6 - AMI BIOS - DRIVE 1 DATA
- Note: this vector is used by some AMI BIOSes to store the third four bytes
- of the second hard disk's parameter table
- SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
- SeeAlso: INT C5"AMI",INT C7"AMI"
- --------r-C7---------------------------------
- INT C7 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
- --------r-C7---------------------------------
- INT C7 - APL*PLUS/PC - ???
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 87"APL"
- --------d-C7---------------------------------
- INT C7 - AMI BIOS - DRIVE 1 DATA
- Note: this vector is used by some AMI BIOSes to store the final four bytes
- of the second hard disk's parameter table
- SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
- SeeAlso: INT C5"AMI",INT C6"AMI"
- --------r-C8---------------------------------
- INT C8 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
- --------r-C8---------------------------------
- INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 88/AL=00h"APL",INT 88/AL=08h"APL"
- --------r-C9---------------------------------
- INT C9 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
- --------r-C9---------------------------------
- INT C9 - APL*PLUS/PC - ???
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 89"APL"
- --------r-CA---------------------------------
- INT CA - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
- --------r-CA---------------------------------
- INT CA - APL*PLUS/PC - PRINT SCREEN
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 8A"APL"
- --------r-CB---------------------------------
- INT CB - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
- --------r-CB---------------------------------
- INT CB - APL*PLUS/PC - BEEP
- Notes: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- same as printing a ^G via INT 21/AH=02h
- SeeAlso: INT 8B"APL"
- --------r-CC---------------------------------
- INT CC - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
- --------r-CC---------------------------------
- INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
- AX = flag
- 0000h do not save display attributes
- 0001h save attributes
- Note: STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
- the older interrupts
- SeeAlso: INT 8C"APL"
- --------r-CD---------------------------------
- INT CD - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
- --------r-CD---------------------------------
- INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-CE---------------------------------
- INT CE - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
- --------r-CE---------------------------------
- INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-CF---------------------------------
- INT CF - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
- --------r-CF---------------------------------
- INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
- SeeAlso: INT E0"APL"
- --------r-D0---------------------------------
- INT D0 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
- --------r-D0---------------------------------
- INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------U-D0---------------------------------
- INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
- Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
- James" Blaszczak
- Note: if NJFRERAM is installed, this vector points at the signature "NJ"
- Index: installation check;NJFRERAM
- --------r-D1---------------------------------
- INT D1 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
- --------r-D1---------------------------------
- INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-D2---------------------------------
- INT D2 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
- --------r-D2---------------------------------
- INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-D3---------------------------------
- INT D3 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
- --------r-D3---------------------------------
- INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------v-D3---------------------------------
- INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
- SeeAlso: INT 9F"VIRUS"
- --------r-D4---------------------------------
- INT D4 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
- --------r-D4---------------------------------
- INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------O-D400-------------------------------
- INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
- AH = 00h and 01h
- Return: nothing
- Desc: PC-MOS/386 v5.01 reports that these functions are no longer supported
- and enters an endless loop
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- --------O-D402-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
- AH = 02h
- Return: AX = 0000h
- ES:BX -> System Control Block in V86 mode (see #04004)
- ES:EBX -> System Control Block in native mode (see #04004)
- Note: superseded by AH=26h
- SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
-
- Format of PC-MOS/386 System Control Block:
- Offset Size Description (Table 04004)
- 00h WORD pointer to first TCB in chain
- 02h 17 BYTEs reserved
- 13h WORD pointer to current task's TCB
- 15h WORD pointer to TCB of visible (console) task
- --------O-D403-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
- AH = 03h
- AL = subfunction (00h get, 01h set)
- DS:(E)DX -> pathname
- ES:(E)BX -> 10-byte buffer for directory information (see #04005)
- Return: CF clear if successful
- AL = permitted access level for file (00h-03h)
- ES:(E)BX -> modified buffer (AL=01h on entry)
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Notes: BX/DX are used in V86 mode, EBX/EDX in native mode
- the file class cannot be changed for files because it affects the
- encryption method, but directories can have their classes changed
-
- Format of PC-MOS/386 directory information:
- Offset Size Description (Table 04005)
- 00h BYTE reserved (0)
- 01h BYTE file class ('A'-'Z' or 00h)
- 02h DWORD user ID of file creator
- 06h WORD file creation time (see #01665 at INT 21/AX=5700h)
- 08h WORD file creation date (see #01666 at INT 21/AX=5700h)
- --------O-D404-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
- AH = 04h
- BX = task ID or FFFFh for calling task
- Return: CF clear if successful
- ES = segment of Task Control Block (TCB) (see #04006)
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Note: superseded by AH=27h
- SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
-
- Format of PC-MOS/386 Task Control Block:
- Offset Size Description (Table 04006)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "T" = TCB
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---TCB---
- 10h WORD TCB task ID
- 12h WORD native context save area
- 14h WORD start address of task
- 16h WORD end address of task
- 18h BYTE task priority
- 19h BYTE task time slice
- 1Ah BYTE "TCBWAIT" run status of task
- 1Bh BYTE "TCBSTAT" what the task is waiting for
- 1Ch DWORD address of polling routine
- 20h BYTE error code from last function call
- 21h 11 BYTEs name of currently executing task
- 2Ch 4 BYTEs ???
- 30h BYTE keyboard disabled if bit 1 set
- 31h BYTE current shift state and toggles
- 32h 2 BYTEs ???
- 34h BYTE current video mode
- 35h BYTE current video page
- 36h BYTE number of text columns per screen
- 37h BYTE number of text rows per screen
- 38h WORD length of video buffer
- 3Ah WORD video page length
- 3Ch WORD apge start address in video RAM
- 3Eh 4 WORDs current cursor positions for four screen pages
- 46h 8 BYTEs ???
- 4Eh WORD current cursor type
- 50h BYTE current palette setting
- 51h BYTE original video mode
- 52h BYTE start CRT row (00h or 01h)
- 53h BYTE video RAM in task active
- 54h WORD handle of video save area
- 56h WORD page count of video save area
- 58h WORD segment address of video save area
- 5Ah WORD poitner to first Task File Block (see #04009)
- 5Ch WORD pointer to first Current Directory Block (see #04012)
- 5Eh WORD pointer to active Current Directory Block (see #04012)
- 60h BYTE number of drives
- 61h BYTE current drive (0=A:, etc.)
- 62h DWORD disk transfer address
- 66h 4 BYTEs ???
- 6Ah BYTE verify flag (nonzero = on)
- 6Bh BYTE break flag (nonzero = on)
- 6Ch WORD share/lock retry count
- 6Eh WORD ticks between share/lock retries
- 70h BYTE remote printer flags (see #04007)
- 71h BYTE ETX/ACK delay count
- 72h WORD spooler segment address
- 74h 2 BYTEs ???
- 76h 3 BYTEs remote printer redirection for LPT1 through LPT3 (see #04008)
- 79h 2 BYTEs ???
- 7Bh DWORD offset of username in TCB
- 7Fh BYTE current output class
- 80h 7 BYTEs protection access rights, 2 bits per class (writeable!)
- 87h 122 BYTEs ???
- 101h BYTE TCB sleep downcounter value
- 102h 20 BYTEs ???
- 116h BYTE last scan code
- ...
- 5D0h DWORD far pointer to Device Driver Terminal's entry point
- 5D4h WORD offset of logical screen
- 5D6h WORD segment of logical screen
- 5D8h WORD cursor offset within page
- 5DAh BYTE screen columns
- 5DBh WORD async port number (0000h = none)
- 5DDh DWORD physical baudrate
- 5E1h 19 BYTEs reserved for Device Driver Terminal (DDT)
- ...
- 7A6h DWORD far pointer to unregister calling chain
-
- Bitfields for PC-MOS/386 remote printer flags:
- Bit(s) Description (Table 04007)
- 0 LPT1 to terminal
- 1 LPT2 to terminal
- 2 LPT3 to terminal
- 3 escape to printer pending
- 4 use XON/XOFF
- 5 use ETX/ACK
- 6 waiting for ACK or XON
- 7 transparent printing on
-
- (Table 04008)
- Values for PC-MOS/386 remote printer redirection:
- 00h not redirected
- 01h redirected to COM1
- ...
- 18h redirected to COM24
- 51h redirected to LPT1
- 52h redirected to LPT2
- 53h redirected to LPT3
-
- Format of PC-MOS/386 Task File Block:
- Offset Size Description (Table 04009)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "F" = task file block
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---TFB---
- 10h WORD segment address of next TFB
- 12h WORD segment address of previous TFB
- 14h WORD segment address of TFB's Global File Block (see #04011)
- 16h WORD segment address of owner's PSP
- 18h WORD file handle
- 1Ah 3 BYTEs ???
- 1Dh DWORD file position
- 21h 4 BYTEs ???
- 25h BYTE IOCTL flags (see #04010)
- 26h 2 BYTEs ???
-
- Bitfields for PC-MOS/386 IOCTL flags:
- Bit(s) Description (Table 04010)
- 0 stdin
- 1 stdout
- 2 null device
- 3 clock device
- 4 reserved
- 5 ASCII mode instead of binary
- 6 EOF encountered on input
- 7 device rather than file
-
- Format of PC-MOS/386 Global File Block:
- Offset Size Description (Table 04011)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "G" = global file block
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---GFB---
- 10h 10 BYTEs ???
- 1Ah WORD file attribute
- 1Ch BYTE ???
- 1Dh DWORD address of device driver
- 21h WORD first cluster
- 23h WORD time of last modification
- 25h WORD date of last modification
- 27h DWORD size of file in bytes
- 2Bh 11 BYTEs ???
- 36h 11 BYTEs device name or FCB-format filename
- 41h WORD segment address of TFB list
- 43h WORD segment address of first RLB (see #04014) (0000h = none)
- 45h BYTE flag: nonzero if GFB refers to character device
- 46h WORD address of Block Device Block (see #04013)
- 48h WORD sector of file's directory entry (see #01352)
- 4Ah WORD high word of file's directory entry
- 4Ch WORD ofsset of directory entry within sector
-
- Format of PC-MOS/386 Current Directory Block:
- Offset Size Description (Table 04012)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "C" = current directory block
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---CDB---
- 10h BYTE drive number
- 11h BYTE ???
- 12h 64 BYTEs directory name
- 52h WORD first directory cluster (0000h = root)
-
- Format of PC-MOS/386 Block Device Block:
- Offset Size Description (Table 04013)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "B" = block device block
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---BDB---
- 10h BYTE logical drive
- 11h BYTE unit passed to driver
- 12h WORD sector size
- 14h BYTE cluster mask
- 15h BYTE cluster shift count
- 16h WORD starting sector of first FAT
- 18h BYTE number of FATs
- 19h WORD number of root directories
- 1Bh WORD sector number of first data sector (cluster 0002h)
- 1Dh WORD number of clusters + 1 (number of highest data cluster)
- 1Fh BYTE number of sectors in FAT
- 20h WORD beginning root directory sector number
- 22h DWORD device driver address
- 26h BYTE media descriptor byte
- 27h 5 BYTEs ???
- 2Ch BYTE flag: volume > 32MB
- 2Dh BYTE ???
- 2Eh BYTE number of sectors per cluster
- 2Fh WORD number of clusters on device
- 31h WORD number of free clusters (FFFFh = unknown)
- 33h WORD root directory cluster number
- 35h WORD pointer to alias/subst string
- 37h WORD TCB segment address of owner (0000h = none)
-
- Format of PC-MOS/386 Record Lock Block:
- Offset Size Description (Table 04014)
- 00h BYTE signature byte "H" if allocated from system memory pool
- 01h BYTE header block ID, "R" = record lock block
- 02h WORD length of block in paragraphs
- 04h WORD segment address of next header block (0000h if last)
- 06h WORD segment address of previous header block (0000h if first)
- 08h WORD pointer to next TCB
- 0Ah WORD pointer to previous TCB
- 0Ch WORD pointer to associated TCB (if applicable)
- 0Eh WORD reserved
- ---RLB---
- 10h WORD segment address of owner's PSP
- 12h WORD segment address of Global File Block (see #04011)
- 14h WORD segment address of owner's Task File Block (see #04009)
- 16h DWORD file offset of locked region start
- 1Ah DWORD length of locked region
- 1Eh WORD owner's handle for file
- --------O-D407-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
- AH = 07h
- AL = events to monitor (see #04015)
- BX = number of timer ticks until timeout if AL bit 1 set
- CX = bitmap of IRQs to monitor if AL bit 2 set
- (bit 0 = IRQ0 .. bit 15 = IRQ15)
- DX = port to monitor if AL bit 3 set
- Return: CF clear if successful
- AL = type of event which woke up task (see #04015)
- CX = IRQ (if any) which awakened task
- DX = port (if any) which awakened task
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Note: a device driver may make this call with AL=00h, which indicates that
- the driver is responsible for setting and clearing the TCBWAIT field
- in the TCB. To put task to sleep, set TCBWAIT bits 2-0 to 001; to
- reawaken it, set bit 1 (leaving other bits unchanged)
- SeeAlso: AH=04h,INT 16/AH=00h,INT 38
-
- Bitfields for PC-MOS/386 events to monitor:
- Bit(s) Description (Table 04015)
- 0 keystroke
- 1 timeout
- 2 IRQ
- 3 port access
- 7 return status of user poll routine (other ignored if set)
- --------O-D410-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
- AH = 10h
- AL = direction (00h return to V86 mode, 01h enter native mode)
- CX = length in bytes of Native Context Area ( >=1024 )
- DX = segment of Native Context Area
- Return: CF clear if successful
- running in desired mode at instruction following INT D4 call
- all segment registers converted to appropriate selectors/segments
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Note: MS-DOS calls are available in protected mode
- SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
- --------O-D411-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
- AH = 11h
- EBX = block length in bytes
- Return: CF clear if successful
- EBX = number of bytes actually allocated
- ES = selector for allocated block
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- Note: the memory must be released before the program terminates
- SeeAlso: AH=10h,AH=12h,INT 38
- --------O-D412-------------------------------
- INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
- AH = 12h
- ES = selector for block to free
- Return: CF clear if successful
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
- --------O-D413-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
- AH = 13h
- AL = type of alias selector (00h data, 01h stack, 02h code)
- BX = selector
- Return: CF clear if successful
- AX = new selector or 0000h if BX selector not found
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=11h,AH=12h
- --------O-D416-------------------------------
- INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
- AH = 16h
- AL = function (00h clear, 01h set reservation)
- CX = IRQ number
- Return: AX = status
- (0000h successful, 0001h currently reserved by another task)
- SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
- --------O-D419-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET TASK ID
- AH = 19h
- Return: BX = caller's task ID
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=1Dh,AH=1Eh
- --------O-D41A-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
- AH = 1Ah
- AL = subfunction (00h read, 01h set, 02h get and set)
- BX = task ID (FFFFh for current task)
- CL = new priority value
- Return: CF clear if successful
- CL = current priority value
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=1Bh,AH=1Ch
- --------O-D41B-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
- AH = 1Bh
- AL = subfunction (00h read, 01h set, 02h get and set)
- BX = task ID (FFFFh for current task) (see AH=19h)
- CL = new time slice value
- Return: CF clear if successful
- CL = current time slice value
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=1Ah,AH=1Ch
- --------O-D41C-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
- AH = 1Ch
- AL = subfunction (00h enable, 01h disable, 02h get mode)
- BX = task ID (FFFFh for current task)
- Return: CF clear if successful
- CL = current keyboard state
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=1Ah,AH=1Bh
- --------O-D41D-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
- AH = 1Dh
- BX = task ID (FFFFh for current task) (see AH=19h)
- ES:DI -> buffer for program name (see #04016)
- Return: CF clear if successful
- ES:DI buffer filled
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=19h,AH=1Eh
-
- Format of PC-MOS/386 program name buffer:
- Offset Size Description (Table 04016)
- 00h 8 BYTEs filename
- 08h 3 BYTEs extension
- --------O-D41E-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
- AH = 1Eh
- BX = task ID (FFFFh for current task)
- ES:DI -> 4-byte buffer for username
- Return: CF clear if successful
- CL = security class
- 20h (' ') none
- 41h-5Ah ('A'-'Z') security level
- ES:DI buffer filled
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=19h,AH=1Dh
- --------O-D41F-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
- AH = 1Fh
- BX = task ID (FFFFh for current task) (see AH=19h)
- Return: CF clear if successful
- CX = start segment of task
- DX = ending segment of task
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=2Dh
- --------O-D420-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
- AH = 20h
- BX = task ID (FFFFh for current task) (see AH=19h)
- Return: CF clear if successful
- CX = port number (0000h if none)
- DI:SI = baudrate (if CX nonzero)
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: INT 14/AH=0Ch"FOSSIL"
- --------O-D421-------------------------------
- INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
- AH = 21h
- BX = task ID (FFFFh for current task) (see AH=19h)
- Return: CF clear if successful
- AX = ASCII percentage of System Memory Pool used
- (AH = tens digit, AL = ones digit)
- DS,SI destroyed
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=22h
- --------O-D422-------------------------------
- INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
- AH = 22h
- DS:SI -> addtask data structure (see #04018)
- Return: CF clear if successful
- ES = segment address of the new task's TCB data structure
- CF set on error
- AX = error code (see #04017)
- SeeAlso: AH=21h
-
- (Table 04017)
- Values for PC-MOS/386 error code:
- 08h insufficient memory
- 0Bh invalid addtask structure format
- 12h insufficient available space in system memory pool
- 1Fh general failure
- 55h already allocated
- 57h if task already in use or invalid parameter
-
- Format of PC-MOS/386 addtask data structure:
- Offset Size Description (Table 04018)
- 00h WORD task size in KB (min 16KB)
- 02h WORD task ID (0000h for automatic selection)
- 04h BYTE task class (' ' or 'A'-'Z')
- 05h DWORD -> ASCIZ name of task startup batchfile
- 09h DWORD -> task's terminal driver (0000000h = background task)
- 0Dh WORD task port
- 0Fh DWORD task baud rate
- 13h DWORD (ret) total extended memory
- 17h DWORD (ret) number of 4K extended memory pages allocated
- 1Bh WORD (ret) paragraphs of system memory pool allocated
- 1Dh WORD (ret) system memory pool size in paragraphs
- 1Fh WORD (ret) ASCII task percentage of system memory pool
- 21h 3 BYTEs reserved
- --------O-D423-------------------------------
- INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
- AH = 23h
- BX = task ID (FFFFh for current task)
- DS:SI -> entry point of the new Device Driver Terminal
- Return: CF clear if successful
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- --------O-D424-------------------------------
- INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
- AH = 24h
- Return: DS:DX -> '$'-terminated string containing the serial number
- --------O-D425-------------------------------
- INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
- AH = 25h
- DX = driver's CS value
- Return: AX = segment address of driver in system memory pool
- (0000h if the driver is not within the system memory pool)
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- --------O-D426-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
- AH = 26h
- Return: DX = segment/selector of the System Control Block (see #04004)
- Note: this function supersedes AH=02h
- SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
- --------O-D427-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
- AH = 27h
- BX = task ID (FFFFh if current task) (see AH=19h)
- Return: CF clear if successful
- DX = segment/selector for the Task Control Block (see #04006)
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- Note: this function supersedes AH=04h
- SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
- --------O-D428-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
- AH = 28h
- BX = offset into control block at which to start reading
- CX = number of bytes to read
- DX = segment/selector of control block obtained via AH=26h or AH=27h
- ES:DI -> buffer for data
- Return: CF clear if successful
- CF set on error
- AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
- 05h access denied due to an invalid segment/selector
- SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
- --------O-D429-------------------------------
- INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
- AH = 29h
- BX = offset into control block at which to start writing
- CX = number of bytes to write
- DX = segment/selector of control block obtained via AH=26h or AH=27h
- DS:SI -> buffer containing data to be written
- Return: CF clear if successful
- CF set on errro
- AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
- 05h access denied due to an invalid segment/selector
- Note: this function performs no bounds checking
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
- --------O-D42A-------------------------------
- INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
- AH = 2Ah
- BX = offset into control block at which to start swap
- CX = number of bytes to swap
- DX = segment/selector of control block obtained via AH=26h or AH=27h
- DS:SI -> buffer containing new data and to receive current data
- Return: CF clear if successful
- CF set on error
- AX = error code (see also #01680 at INT 21/AH=59h/BX=0000h)
- 05h access denied due to an invalid segment/selector
- Note: the interrupts are disabled during the swap to prevent corruption
- SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
- --------O-D42C-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
- AH = 2Ch
- AL = function
- 00h set spooler timeout
- CX = timout value in seconds
- 01h get spooler timeout
- Return: CX = current timeout in seconds
- 02h get spooler parameters
- Return: CH = priority (00h-09h)
- CL = disposition (d, h, i, n, s)
- SI = class (a - z)
- 03h set spooler parameters
- CH = priority (00h-09h)
- CL = disposition (d, h, i, n, s)
- SI = class (a - z)
- BX = task ID (FFFFh for current task)
- DX = LPT number
- Return: CF clear if successful
- CF set on error
- AX = error code (see #01680 at INT 21/AH=59h/BX=0000h)
- SeeAlso: AH=00h,AH=02h,AH=03h
- --------O-D42D-------------------------------
- INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
- AH = 2Dh
- Return: DX = maximum task size in paragraphs
- BX = start address of task space
- Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
- system by The Software Link, Inc.
- SeeAlso: AH=1Fh,AH=22h
- --------r-D5---------------------------------
- INT D5 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
- --------r-D5---------------------------------
- INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-D6---------------------------------
- INT D6 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
- --------r-D6---------------------------------
- INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-D7---------------------------------
- INT D7 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
- --------r-D7---------------------------------
- INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------r-D8---------------------------------
- INT D8 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
- --------r-D8---------------------------------
- INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------H-D8---------------------------------
- INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
- Range: INT 78h to INT E0h, selected by commandline switch
- Note: Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
- but may be directed via a commandline switch to use any range
- starting at a multiple of 8 between 78h and E0h
- SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
- SeeAlso: INT D9"Screen Thief"
- --------r-D9---------------------------------
- INT D9 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
- --------r-D9---------------------------------
- INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------H-D9---------------------------------
- INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
- Range: INT 79h to INT E1h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
- --------r-DA---------------------------------
- INT DA - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
- --------r-DA---------------------------------
- INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------H-DA---------------------------------
- INT DA - Screen Thief v1.00 - RELOCATED IRQ2
- Range: INT 7Ah to INT E2h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
- --------r-DB---------------------------------
- INT DB - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
- --------r-DB---------------------------------
- INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------H-DB---------------------------------
- INT DB - Screen Thief v1.00 - RELOCATED IRQ3
- Range: INT 7Bh to INT E3h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
- --------u-DC---------------------------------
- INT DC - PC/370 v4.1- - API
- SeeAlso: INT 60"PC/370"
- --------r-DC---------------------------------
- INT DC - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
- --------r-DC---------------------------------
- INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
- --------H-DC---------------------------------
- INT DC - Screen Thief v1.00 - RELOCATED IRQ4
- Range: INT 7Ch to INT E4h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
- --------r-DD---------------------------------
- INT DD - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
- --------r-DD---------------------------------
- INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
- BX = where to place keystrokes
- FFFFh insert before current buffer contents
- 0000h replace current contents
- 0001h insert after current contents
- CX = number of keystroke events to insert
- ES:SI -> data to be placed into buffer (list of WORD key codes)
- 4000h + N = normal ASCII keystroke N (N = 00h to FFh)
- 4100h + N = extended ASCII keystroke N (N = 03h to 84h)
- Return: nothing
- SeeAlso: INT 16/AH=05h
- --------H-DD---------------------------------
- INT DD - Screen Thief v1.00 - RELOCATED IRQ5
- Range: INT 7Dh to INT E5h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
- --------r-DE---------------------------------
- INT DE - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
- --------r-DE---------------------------------
- INT DE - APL*PLUS/PC - ???
- Note: appears to be the same as INT 16
- --------H-DE---------------------------------
- INT DE - Screen Thief v1.00 - RELOCATED IRQ6
- Range: INT 7Eh to INT E6h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
- --------b-DF---------------------------------
- INT DF - Victor 9000/Sirius 1 - SuperBIOS
- SeeAlso: INT 21/AH=EAh"NetWare"
- --------r-DF---------------------------------
- INT DF - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
- --------r-DF---------------------------------
- INT DF - APL*PLUS/PC - SAME AS INT 10
- SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh
- --------H-DF---------------------------------
- INT DF - Screen Thief v1.00 - RELOCATED IRQ7
- Range: INT 7Fh to INT E7h, selected by commandline switch
- Note: (see INT D8"Screen Thief")
- SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
- --------r-E0---------------------------------
- INT E0 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
- --------r-E0---------------------------------
- INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
- SeeAlso: INT CF"APL"
- --------v-E0---------------------------------
- INT E0 - VIRUS - "Micro-128" - ???
- Note: Micro-128 also overwrites the upper half of the interrupt table
- SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
- ----------E0---------------------------------
- INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API
- AX = function code (numerous)
- parameters passed in BX, DX, ES, DI, and/or BP
- Return: AX = return from function
- Program: DeskMate is a proprietary GUI from Tandy distributed with several
- models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail
- and runtime versions also exist. Some Tandy's are designed to
- boot directly into DeskMate.
- SeeAlso: INT 15/AX=7002h,INT E1"DeskMate"
- --------O-E0---------------------------------
- INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
- CL = function number (see #04019,#04020)
- DS,DX contain parameter(s):
- DL = byte parameter
- DX = word parameter
- DS:DX -> structure
- Return: as appropriate for function:
- AL = byte result
- AX = word
- ES:AX -> structure (and BX=ES)
- CX is often the error code (see #04021)
- Notes: several functions are covered in more detail in following entries
- most of these calls are also supported by Digital Research's DOS Plus
- v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
- 90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
- SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus",INT E6"CP/M-86"
-
- (Table 04019)
- Values for CP/M-86,DR Multiuser DOS function number:
- 00h terminate calling process (see INT E0/CL=00h)
- 01h read a character (see INT E0/CL=01h)
- 02h write character to default console (see INT E0/CL=02h)
- 03h read character from default AUX (see INT E0/CL=03h)
- 04h write character to default AUX (see INT E0/CL=04h)
- 05h write character to default list device (see INT E0/CL=05h)
- 06h perform raw I/O on default console (see INT E0/CL=06h)
- 07h return default AUX input status (see INT E0/CL=07h)
- 08h return default AUX output status (see INT E0/CL=08h)
- 09h write string to default console (see INT E0/CL=09h)
- 0Ah read string from default console (see INT E0/CL=0Ah)
- 0Bh return default console input status (see INT E0/CL=0Bh)
- 0Ch get BDOS release ID (see INT E0/CL=0Ch)
- 0Dh reset all disk drives (see also INT 21/AH=0Dh)
- 0Eh set default drive (see also INT 21/AH=0Eh"DOS 1+")
- 0Fh open file via FCB (see also INT 21/AH=0Fh,#01345)
- 10h close file via FCB (see also INT 21/AH=10h)
- 11h search for first matching file with FCB (see also INT 21/AH=11h)
- 12h search for next matching file with FCB (see also INT 21/AH=12h)
- 13h delete file via FCB (see also INT 21/AH=13h)
- 14h sequential read via FCB (see also INT 21/AH=14h)
- 15h sequential write via FCB (see also INT 21/AH=15h)
- 16h create file via FCB (see also INT 21/AH=16h)
- 17h rename file via FCB (see also INT 21/AH=17h)
- 18h get bit map of logged drives
- 19h get default drive (see also INT 21/AH=19h)
- 1Ah set DMA address offset
- 1Bh get default disk allocation vector (see also INT 21/AH=1Bh)
- 1Ch set default drive to read-only
- 1Dh get bit map of read-only drives
- 1Eh set file attributes via FCB (see also INT 21/AX=4301h)
- 1Fh get address of disk parameter block (see also INT 21/AH=1Fh)
- 20h get/set default user number
- 21h read random record via FCB (see also INT 21/AH=21h)
- 22h write random record via FCB (see also INT 21/AH=22h)
- 23h compute file size with FCB (see also INT 21/AH=23h)
- 24h get FCB random record number (see also INT 21/AH=24h)
- 25h reset specified drives
- 26h access specified drives (not in DR DOS Plus v2.1)
- 27h free specified drives
- 28h write random with FCB, zero fill (see also INT 21/AH=28h)
- 2Ah lock records in FCB file (see also INT 21/AH=5Ch)
- 2Bh unlock records in FCB file (see also INT 21/AH=5Ch)
- 2Ch set BDOS multisector count
- 2Dh set BDOS error mode
- 2Eh get free space on disk
- 2Fh load, initialize, and jump to process ("chain process")
- (see INT E0/CL=2Fh,INT 21/AH=4Bh)
- 30h flush write-deferred buffers
- 31h get/set system variable (DOS Plus v2.1)
- 32h call BIOS (XIOS) character routine (see #04020)
- 33h set DMA address segment
- 34h get DMA buffer address
- 35h CP/M-86 allocate maximum memory (see INT E0/CL=35h)
- 36h allocate maximum memory at specified segment (see INT E0/CL=36h)
- 37h CP/M-86 allocate memory segment (see INT E0/CL=37h,INT 21/AH=48h)
- 38h allocate memory at specified segment (see INT E0/CL=38h)
- 39h CP/M-86 free specified memory segment (see INT E0/CL=39h,INT 21/AH=49h)
- 3Ah CP/M-86 free all memory (not in DOS Plus v2.1) (see INT E0/CL=3Ah)
- 3Bh load .CMD file into memory (see INT E0/CL=3Bh)
- 3Ch (DOS Plus v2.1) call RSX program
- 40h (DR-NET, REAL/32) log on a server (see INT E0/CL=40h)
- 41h (DR-NET, REAL/32) log off a server (see INT E0/CL=41h)
- 42h (DR-NET) send a message
- 43h (DR-NET) receive a message
- 44h (DR-NET, REAL/32) get network status (see INT E0/CL=44h)
- 45h (DR-NET, REAL/32) get requestor config table (see INT E0/CL=45h)
- 46h (DR-NET) set compatibility attributes
- 47h (DR-NET, REAL/32) get server configuration table (see INT E0/CL=47h)
- 48h (DR-NET, REAL/32) set network error mode (see INT E0/CL=48h)
- 49h (DR-NET, REAL/32) attach network
- 4Ah (DR-NET, REAL/32) detach network
- 4Bh (DR-NET, REAL/32) set default password
- 4Ch (DR-NET, REAL/32) get-set long timeout
- 4Dh (DR-NET, REAL/32) get parameter table
- 4Fh (REAL/32) get extended network error
- 50h (DR-NET, REAL/32) get network information
- 53h get current time (see also INT 21/AH=2Ch)
- 54h set current time (see also INT 21/AH=2Dh)
- 55h get binary system date (see also INT 21/AH=2Ah)
- 56h set system date (see also INT 21/AH=2Bh"DATE")
- 57h allocate system flag
- 58h deallocate system flag
- 59h reserve memory in global area (see INT E0/CL=59h)
- 5Ah lock physical drive
- 5Bh unlock physical drive
- 5Ch search path for executable file (see INT E0/CL=5Ch)
- 5Dh load and execute command (see INT E0/CL=5Dh)
- 5Eh get/set process exit code (see INT E0/CL=5Eh)
- 5Fh set country information
- 60h get country information
- 63h truncate FCB file (see also INT 21/AH=28h)
- 64h create/update directory label
- 65h get directory label
- 66h get FCB date stamp and password mode
- 67h write extended FCB
- 68h set system date and time
- 69h get system date and time in binary
- 6Ah establish password for file access
- 6Bh get OS serial number (see INT E0/CL=6Bh)
- 6Ch (DOS Plus v2.1) get/set program return code
- 6Dh get/set console mode (see INT E0/CL=6Dh)
- 6Eh get/set string delimiter (see INT E0/CL=6Eh)
- 6Fh write block to default console (see INT E0/CL=6Fh)
- 70h write block to default list device (see INT E0/CL=70h)
- 71h execute DOS-compatible function (see INT E0/CL=71h)
- 74h set FCB time and date stamps
- 80h allocate memory (see INT E0/CL=80h)
- 82h deallocate memory (see INT E0/CL=81h)
- 83h poll I/O device
- 84h wait on system flag (see INT E0/CL=84h)
- 85h set system flag (see INT E0/CL=85h)
- 86h create message queue (see INT E0/CL=86h)
- 87h open message queue (see INT E0/CL=87h)
- 88h delete message queue (see INT E0/CL=88h)
- 89h read from message queue (see INT E0/CL=89h)
- 8Ah conditionally read from message queue (see INT E0/CL=8Ah)
- 8Bh write to message queue (see INT E0/CL=8Bh)
- 8Ch conditionally write to message queue (see INT E0/CL=8Ch)
- 8Dh delay calling process (see INT E0/CL=8Dh)
- 8Eh call process dispatcher (yield CPU) (see INT E0/CL=8Eh)
- 8Fh terminate calling process (same as func 00h) (see INT E0/CL=8Fh)
- 90h create a process (see INT E0/CL=90h)
- 91h set calling process' priority (see INT E0/CL=91h)
- 92h attach to default console (see INT E0/CL=92h)
- 93h detach from default console (see INT E0/CL=93h)
- 94h (REAL/32) set the process' default console (see INT E0/CL=94h)
- 95h assign default console to process (see INT E0/CL=95h)
- 96h interpret and execute commandline (see INT E0/CL=96h)
- 97h resident procedure library
- 98h parse ASCII string into FCB (see also INT 21/AH=29h)
- 99h return default console (see INT E0/CL=99h)
- 9Ah get address of system data (SYSDAT) (see INT E0/CL=9Ah)
- 9Bh get system time and date
- 9Ch return calling process' descriptor (see INT E0/CL=9Ch)
- 9Dh terminate process by name or PD address (see INT E0/CL=9Dh)
- 9Eh attach to default list device (see INT E0/CL=9Eh)
- 9Fh detach from default list device (see INT E0/CL=9Fh)
- A0h select default list device (see INT E0/CL=A0h)
- A1h conditionally attach to default list device (see INT E0/CL=A1h)
- A2h conditionally attach to default console (see INT E0/CL=A2h)
- A3h get OS version number (see INT E0/CL=A3h)
- A4h get default list device (see INT E0/CL=A4h)
- A5h attach to default AUX (see INT E0/CL=A5h)
- A6h detach from default AUX (see INT E0/CL=A6h)
- A7h conditionally attach to default AUX (see INT E0/CL=A7h)
- A8h set default AUX (see INT E0/CL=A8h)
- A9h return default AUX (see INT E0/CL=A9h)
- ACh read block from default AUX (see INT E0/CL=ACh)
- ADh (DOS Plus v2.1) write block to default AUX (see INT E0/CL=ADh)
- B0h configure default AUX (see INT E0/CL=B0h)
- B1h get/set device control parameters (see INT E0/CL=B1h)
- B2h send Break through default AUX (see INT E0/CL=B2h)
- B3h allocate physical memory (see INT E0/CL=B3h)
- B4h free physical memory (see INT E0/CL=B4h)
- B5h map physical memory (see INT E0/CL=B5h)
- B6h nondestructive conditional message queue read (see INT E0/CL=B6h)
- B7h timed wait on system flag (see INT E0/CL=B7h)
- B8h get/set I/O port mapping (see INT E0/CL=B8h)
- B9h set list device timeout (see INT E0/CL=B9h)
- BAh set AUX timeout value (see INT E0/CL=BAh)
- BBh execute XIOS service
- BDh (DR Multiuser DOS) delay (see INT E0/CL=BDh)
- FFh return 80386 to native mode
- SeeAlso: #04020,#04021
-
- (Table 04020)
- Values for DOS Plus v2.1 XIOS functions:
- 00h terminate program
- 01h ???
- 02h check for console input status
- 03h read character from console
- 04h write character to console
- 05h write character to list device
- 06h write character to auxiliary device
- 07h read character from auxiliary device
- 0Fh get list device status
- 10h-14h reserved
- 15h device initialization
- 16h check console output status
- 17h-7Fh reserved
- ---BBC Acorn---
- 80h get XIOS version
- 81h get Tube semaphore
- 82h release Tube semaphore
- 83h select text/graphics
- 84h update B&W graphics rectangle
- 85h update color graphics rectangle
- 86h get/release/update mouse
- 87h get system error info
- 88h entry in CLOCK called by WatchDog RSP
- 89h BBC OSBYTE function
- 8Ah BBC OSWORD function
- SeeAlso: #04019
-
- (Table 04021)
- Values for DR Multiuser DOS Error Return Code:
- 00h no error
- 01h system call not implemented
- 02h illegal system call number
- 03h cannot find memory
- 04h illegal flag number
- 05h flag overrun
- 06h flag underrun
- 07h no unused Queue Descriptors
- 08h no free queue buffer
- 09h cannot find queue
- 0Ah queue in use
- 0Ch no free Process Descriptors
- 0Dh no queue access
- 0Eh empty queue
- 0Fh full queue
- 10h CLI queue missing
- 11h no 8087 in system
- 12h no unused Memory Descriptors
- 13h illegal console number
- 14h no Process Descriptor match
- 15h no console match
- 16h no CLI process
- 17h illegal disk number
- 18h illegal filename
- 19h illegal filetype
- 1Ah character not ready
- 1Bh illegal Memory Descriptor
- 1Ch bad return from BDOS load
- 1Dh bad return from BDOS read
- 1Eh bad return from BDOS open
- 1Fh null command
- 20h not owner of resource
- 21h no CSEG in load file
- 22h process Descriptor exists on Thread Root
- 23h could not terminate process
- 24h cannot attach to process
- 25h illegal list device number
- 26h illegal password
- 28h external termination occurred
- 29h fixup error upon load
- 2Ah flag set ignored
- 2Bh illegal auxilliary device number
- SeeAlso: #04019
- --------O-E0----CL00-------------------------
- INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS
- CL = 00h
- Return: AX = error code
- FFFFh on failure
- may destroy SI,DI???
- Program: REAL/32 is the descendant of IMS Multiuser DOS, which in turn is
- derived from DR Multiuser DOS and its predecessors (Concurrent DOS,
- etc.)
- Note: sets the exit code (ERRORLEVEL) to 00h
- SeeAlso: INT 21/AH=00h
- --------O-E0----CL01-------------------------
- INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE
- CL = 01h
- Return: AX = character
- may destroy SI,DI???
- Notes: this function echos the character to the screen, expanding Tab
- characters to the next multiple of eight columns; Ctrl-C is
- ignored if the calling process can not terminate
- the calling process is suspended until a character is available; if
- the caller does not own the console, it is suspended until it
- can attach to the console
- SeeAlso: INT E0/CL=02h,INT E0/CL=06h,INT 21/AH=01h
- --------O-E0----CL02-------------------------
- INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE
- CL = 02h
- DX = character
- Return: nothing
- may destroy SI,DI???
- Note: Tab characters are expanded to blanks up to the next multiple of
- eight columns
- SeeAlso: INT E0/CL=01h,INT E0/CL=06h,INT 21/AH=02h
- --------O-E0----CL03-------------------------
- INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE
- CL = 03h
- Return: AL = ASCII character
- may destroy SI,DI???
- Notes: A_READ reads the next 8-bit character from the logical auxilliary
- input device (AUXn:); control is not returned to the calling
- process until a character has been read.
- if another process owns AUX, this call blocks until the device becomes
- available
- this function is also supported by REAL/32
- SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
- --------O-E0----CL04-------------------------
- INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE
- CL = 04h
- DL = BYTE to write
- Return: nothing
- may destroy SI,DI,DH???
- Note: if another process owns AUX, this call blocks until the device becomes
- available
- SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
- --------O-E0----CL05-------------------------
- INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE
- CL = 05h
- DL = char to write
- Return: nothing
- may destroy SI,DI???
- Note: if another process owns the list device, this call blocks until the
- device becomes available
- SeeAlso: INT 21/AH=05h
- --------O-E0----CL06-------------------------
- INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE
- CL = 06h
- DL = mode describing the operation to be performed
- FFh get console input/status
- FEh get console status
- FDh get console input (blocking)
- else output DL to the console as a character
- Return: AX = returned value
- for DL = FFh, the character or 00h if none available
- for DL = FEh, 00h if no characters available, FFh if any available
- for DL = FDh, the character read from the console
- else AX = 0000h
- may destroy SI,DI???
- Notes: during raw I/O, the special characters ^C, ^O, ^P, and ^S are not
- interpreted, but are passed through
- if the virtual console is in ^S mode and the owning process calls
- this function, the ^S state is cleared
- SeeAlso: INT E0/CL=01h,INT E0/CL=02h,INT 21/AH=06h
- --------O-E0----CL07-------------------------
- INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
- CL = 07h
- Return: AL = status
- 00h not ready
- FFh character available
- Desc: determine whether the current AUX device has input available
- SeeAlso: INT E0/CL=03h,INT E0/CL=08h
- --------O-E0----CL08-------------------------
- INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
- CL = 08h
- Return: AL = status
- 00h not ready
- FFh ready for output
- Desc: determine whether the current AUX device is able to accept more output
- SeeAlso: INT E0/CL=04h,INT E0/CL=07h
- --------O-E0----CL09-------------------------
- INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE
- CL = 09h
- DS:DX -> string
- Return: nothing
- may destroy SI,DI,DS???
- Note: the string terminated with a '$' character (24h) by default; the
- terminator may be changed with C_DELIMIT
- tabs are expanded to the next multiple of eight columns
- SeeAlso: INT E0/CL=6Eh
- --------O-E0----CL0A-------------------------
- INT E0 - REAL/32 - "C_READSTR" - READ STRING FROM DEFAULT CONSOLE
- CL = 0Ah
- DS:DX -> buffer for string (see #04022)
- Return: nothing
-
- Format of REAL/32 "C_READSTR" buffer:
- Offset Size Description (Table 04022)
- 00h BYTE maximum number of characters buffer can hold
- 01h BYTE actual number of buffers read
- 02h N BYTEs input line
- --------O-E0----CL0B-------------------------
- INT E0 - REAL/32 - "C_STAT" - RETURN DEFAULT CONSOLE INPUT STATUS
- CL = 0Bh
- Return: AX = status
- 0000h no characters ready
- 0001h character available
- may destroy SI,DI???
- Note: after setting bit 0 of the console mode word with C_MODE, this function
- will only return AX=0001h when the user presses Ctrl-C.
- --------O-E0----CL0C-------------------------
- INT E0 - REAL/32 - "S_BDOSVER" - GET BDOS VERSION
- CL = 0Ch
- Return: AX = version (see #04023)
- may destroy SI,DI???
- SeeAlso: INT E0/CL=A3h,INT 21/AX=4451h
-
- (Table 04023)
- Values for REAL/32 BDOS version:
- 1432h - DR Concurrent PC DOS Version 3.2
- 1441h - DR Concurrent DOS Version 4.1
- 1450h - DR Concurrent DOS/XM Version 5.0
- 1463h - DR Multiuser DOS Release 5.0
- 1465h - DR Multiuser DOS Release 5.01
- 1466h - DR Multiuser DOS Release 5.1, IMS Multiuser DOS Enhanced Release 5.1
- 1467h - IMS Multiuser DOS Version 7.0, 7.1
- 1468h - IMS REAL/32 Version 7.50, 7.51
- 1469h - IMS REAL/32 Version 7.52, 7.53
- 14??h - IMS REAL/32 Version 7.6
- SeeAlso: #01579,#01580,#01581
- --------O-E0----CL2F-------------------------
- INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS
- CL = 2Fh
- [DTA] = ASCIZ command line for process to start
- Return: AX = return code
- 0000h successful
- FFFFh failed
- may destroy SI,DI???
- --------O-E0----CL35-------------------------
- INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY
- CL = 35h
- DS:DX -> MCB (see #04024)
- Return: AX = status
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=39h
-
- Format of REAL/32 MCB (Memory Control Block):
- Offset Size Description (Table 04024)
- 00h WORD segment address of memory block
- 02h WORD length of block in paragraphs
- 04h BYTE reserved (0)
- --------O-E0----CL36-------------------------
- INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE
- CL = 36h
- DS:DX -> MCB (see #04024)
- Return: AX = status
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=39h
- --------O-E0----CL37-------------------------
- INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT
- CL = 37h
- DS:DX -> MCB (see #04024)
- Return: AX = status
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=39h
- --------O-E0----CL38-------------------------
- INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE
- CL = 38h
- DS:DX -> MCB (see #04024)
- Return: AX = status
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=39h
- --------O-E0----CL39-------------------------
- INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT
- CL = 39h
- DS:DX -> MCB (see #04024)
- Return: AX = status
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=3Ah
- --------O-E0----CL3A-------------------------
- INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY
- CL = 3Ah
- Return: nothing???
- Desc: release all of the calling process's memory except the User Data Area
- SeeAlso: INT E0/CL=39h
- --------O-E0----CL3B-------------------------
- INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY
- CL = 3Bh
- ???
- Return: ???
- Note: IMS does not document the details of this call because .CMD files are
- supported for backward compatibility only
- --------O-E0----CL40-------------------------
- INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER
- CL = 40h
- DS:DX -> LPB (see #04025)
- Return: AX = status (0000h,00FFh,07FFh,0DFFh,0EFFh,FFFFh) (see #04030)
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=41h
-
- Format of REAL/32 Logon/Logoff Parameter Block:
- Offset Size Description (Table 04025)
- 00h BYTE node ID
- 01h 8 BYTEs password for server access
- 09h DWORD -> process descriptor of process to be logged on (see #04026)
-
- Format of REAL/32 Process Descriptor:
- Offset Size Description (Table 04026)
- 00h WORD offset of next entry in current descriptor list
- 02h WORD offset of thread list
- 04h BYTE current processor status (see #04027)
- 05h BYTE priority
- 06h WORD runtime flags (see #04028)
- 08h 8 BYTEs process name
- 10h WORD segment of User Data Area (256 or 352 bytes)
- 12h BYTE current default disk drive
- 13h BYTE drive from which process was loaded
- 14h WORD reserved (0)
- 16h WORD offset of memory descriptor list for memory owned by process
- 18h 6 BYTEs reserved
- 1Eh WORD offset of process descriptor for parent process
- 0000h if parent has already terminated
- 20h BYTE number of default console
- 21h BYTE number of default AUX device
- 22h 2 BYTEs reserved
- 24h BYTE number of default list device
- 25h BYTE reserved
- 26h WORD flags (see #04029)
- 28h 12 BYTEs reserved
- 34h WORD offset of memory page allocation root
- 36h 22 BYTEs reserved
- SeeAlso: #04025
-
- (Table 04027)
- Values for REAL/32 processor status:
- 00h process is ready to run
- 01h process is polling a device
- 02h delaying for a number of ticks
- 03h in swap list
- 04h terminating
- 05h asleep
- 06h waiting to read a message from a queue
- 07h waiting to write a message
- 08h waiting on system flag or semaphore
- 09h waiting to attach to an I/O device
- 0Ah waiting on sync block
- 0Bh waiting for system flag or semaphore with timeout
- 0Ch forced dispatch
- SeeAlso: #04026
-
- Bitfields for REAL/32 process flags:
- Bit(s) Description (Table 04028)
- 0 system process
- 1 do not terminate
- 2 special rsp process
- 3 from process descriptor table
- 14-4 unused???
- 15 uses math coprocessor
- SeeAlso: #04026,#04029
-
- Bitfields for REAL/32 secondary flags:
- Bit(s) Description (Table 04029)
- 0 suspend when in background
- 1 ???
- 2 in foreground
- 3 enable APPEND processing on file opens
- 4 Ctrl-C was typed
- 5 Ctrl-C will reset disk system
- 6 OK to read locked record
- 7 ???
- 8 do not perform banking
- SeeAlso: #04026,#04028
-
- (Table 04030)
- Values for REAL/32 "N_LOGON" status:
- 0000h successful
- 00FFh server could not create shadow process
- 07FFh incorrect password
- 0CFFh not logged into specified server
- 0DFFh process already logged onto 16 servers,
- LPB process not attached to network
- 0EFFh physical transmission prevented message or response from getting thru
- network error during logoff
- FFFFh calling process not attached to network
- --------O-E0----CL41-------------------------
- INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER
- CL = 41h
- DS:DX -> LPB (see #04025)
- Return: AX = status (0000h,0CFFh,0DFFh,0EFFh,FFFFh) (see #04030)
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=40h
- --------O-E0----CL44-------------------------
- INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS
- CL = 44h
- Return: AX = network status or 0FFFh on error
- bit 8: calling process is attached to network
- may destroy SI,DI???
- --------O-E0----CL45-------------------------
- INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE
- CL = 45h
- DS:DX -> RCT Control Block (see #04031,#04032)
- Return: AX = status or error code (see #04033,#04030)
- may destroy SI,DI,DS???
- SeeAlso: INT E0/CL=47h
-
- Format of REAL/32 RCT Control Block for Drives:
- Offset Size Description (Table 04031)
- 00h BYTE command byte
- 00h map disk drive
- 02h map list device
- 01h BYTE local resource ID
- 02h BYTE remote resource ID
- 03h BYTE server node ID number
- Note: the RCT Control Block is a union of two possible structures; this
- variant is used when mapping disk drives and list devices
- SeeAlso: #04032
-
- Format of REAL/32 RCT Control Block for Queues:
- Offset Size Description (Table 04032)
- 00h BYTE command byte
- 03h map local queue to server
- 04h unmap queue
- 01h 8 BYTEs local queue name (case-sensitive)
- 09h 8 BYTEs remote queue name (case-sensitive)
- 11h BYTE server node ID number
- Note: the RCT Control Block is a union of two possible structures; this
- variant is used when mapping queues
- SeeAlso: #04031
-
- (Table 04033)
- Values for REAL/32 "N_RCT" status:
- 0000h successful
- 0001h invalid local device
- 0002h invalid remote device
- 0003h no queue entry space
- --------O-E0----CL47-------------------------
- INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE
- CL = 47h
- DS:DX -> 112-byte buffer for Server Configuration Table (see #04034)
- Return: AX = status (0000h successful, else error code)
- may destroy SI,DI,DS???
- Note: the first byte of the SCT buffer is set to the desired server number
- prior to calling this function
- SeeAlso: INT E0/CL=45h
-
- Format of REAL/32 Server Configuration Table:
- Offset Size Description (Table 04034)
- 00h BYTE server's default physical drive ID
- 01h BYTE network status
- 02h BYTE server node ID number
- 03h BYTE maximum number of requesters supported by server
- 04h BYTE current number of shadow processes
- 05h 108 BYTEs six logon structures, each:
- Offset Size Description
- 00h WORD bit vector of logged-in nodes
- 02h 16 BYTEs list of requester node IDs
- --------O-E0----CL48-------------------------
- INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE
- CL = 48h
- DL = new error mode
- FFh return error in registers AX,BX,CX
- FEh display message and return error
- FDh display message and abort (default)
- Return: CX = error code (0000h successful, FFFFh failed)
- may destroy SI,DI???
- Desc: specify how the REAL/32 Net Server responds to error numbers 0CFFh,
- 0DFFh, and 0EFFh (see #04030)
- --------O-E0----CL59-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
- CL = 59h
- DX = size in bytes
- Return: AX = status
- FFFFh failed
- other successful
- ES:BX -> reserved memory
- --------O-E0----CL5C-------------------------
- INT E0 - REAL/32 - "P_PATH" - SCAN PATH FOR EXECUTABLE FILE
- CL = 5Ch
- DS:DX -> Exec Parameter Block (EPB) (see #04035)
- Return: AX = status
- FFFEh file not found
- FFFDh path not found
- FFFCh too many handles open
- FFFBh access denied
- FFF6h invalid environment
- FFDCh sharing conflict
- FFAAh invalid password
- EPB updated (if successful)
- may destroy SI,DI,DS
- SeeAlso: INT E0/CL=5Dh,INT E0/CL=5Eh,INT 21/AH=4Bh
-
- Format of REAL/32 Exec Parameter Block (EPB):
- Offset Size Description (Table 04035)
- 00h DWORD -> ASCIZ command to be executed
- 04h BYTE type of exec
- 00h .CMD
- 01h .COM
- 02h .EXE
- 03h .BAT
- 04h RSP-type queue
- 05h BYTE flags
- bit 0: overlay existing program
- bit 1: don't assign console to child
- bit 2: allocate memory for .CMD within parent's memory space
- bit 3: make full banked window available while loading child
- 06h DWORD 32-bit offset to ASCIZ command line
- 0Ah WORD selector for ASCIZ command line
- --------O-E0----CL5D-------------------------
- INT E0 - REAL/32 - "P_EXEC" - EXECUTE CHILD PROCESS
- CL = 5Dh
- DS:DX -> Exec Parameter Block (EPB) (see #04035)
- Return: AX = status
- FFFEh file not found
- FFFDh path not found
- FFFCh too many handles open
- FFFBh access denied
- FFF6h invalid environment
- FFDCh sharing conflict
- FFAAh invalid password
- EPB updated (if successful)
- may destroy SI,DI,DS
- SeeAlso: INT E0/CL=5Ch,INT E0/CL=5Eh,INT 21/AH=4Bh
- --------O-E0----CL5E-------------------------
- INT E0 - REAL/32 - "P_EXITCODE" - GET/SET PROCESS EXIT CODE
- CL = 5Eh
- DX = exit code or FFFFh to get
- DH ignored when setting code
- DL = process exit code
- Return: AX = status (FFFFh on error)
- if getting:
- AH = termination reason
- 00h normal
- 01h external termination via Ctrl-C or P_ABORT
- 02h hardware (critical) error abort
- 03h child did not terminate
- FFh illegal request (no child, or exit code already retrieved)
- AL = process exit code
- SeeAlso: INT E0/CL=5Dh,INT 21/AH=4Ch
- --------O-E0----CL6B-------------------------
- INT E0 - REAL/32 - "S_SERIAL" - GET OS SERIAL NUMBER
- CL = 6Bh
- DS:DX -> 6-byte buffer for ASCII serial number
- Return: nothing???
- --------O-E0----CL6D-------------------------
- INT E0 - REAL/32 - "C_MODE" - GET/SET CONSOLE MODE
- CL = 6Dh
- DX = new console mode (see #04036), or FFFFh to get current mode
- Return: AX = status if setting (0000h = success)
- AX = current console mode if DX=FFFFh on entry
-
- Bitfields for REAL/32 console mode:
- Bit(s) Description (Table 04036)
- 0 C_STAT function will return 01h only when Ctrl-C is pressed
- 1 disable support for stop/start scroll (Ctrl-S/Ctrl-Q)
- 2 raw console output (no tab expansion, no printer echo)
- 3 disable program termination on Ctrl-C
- 7 disable Ctrl-O console bit-bucket
- 10 enable Esc as end-of-line character
- --------O-E0----CL6E-------------------------
- INT E0 - REAL/32 - "C_DELIMIT" - GET/SET STRING DELIMITER
- CL = 6Eh
- DX = new delimiter, or FFFFh to get current string delimiter
- Return: AX = status (0000h success) if setting
- AX = current string delimiter (default is 24h '$' at process start)
- SeeAlso: INT E0/CL=09h
- --------O-E0----CL6F-------------------------
- INT E0 - REAL/32 - "C_WRITEBLK" - WRITE BLOCK TO DEFAULT CONSOLE
- CL = 6Fh
- DS:DX -> Character Control Block (see #04051,#04052)
- Return: nothing???
- SeeAlso: INT E0/CL=70h
- --------O-E0----CL70-------------------------
- INT E0 - REAL/32 - "L_WRITEBLK" - WRITE BLOCK TO DEFAULT LIST (PRINTER) DEVICE
- CL = 70h
- DS:DX -> Character Control Block (see #04051,#04052)
- Return: nothing???
- SeeAlso: INT E0/CL=6Fh
- --------O-E0----CL71-------------------------
- INT E0 R - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS
- CL = 71h
- DS:DX -> parameter block (see #04038)
- Return: AX = status (0000h successful, else error code)
- may destroy SI,DI,DS
-
- (Table 04037)
- Values for DR "execute DOS-compatible function" function number:
- 00h "fd_getdpb" get disk information (see also INT 21/AH=32h)
- 01h "fd_mkdir" create directory (see also INT 21/AH=39h)
- 02h "fd_rmdir" remove directory (see also INT 21/AH=3Ah)
- 03h "fd_chdir" change directory (see also INT 21/AH=3Bh)
- 04h "fd_creat" create file (see also INT 21/AH=3Ch)
- 05h "fd_open" open existing file (see also INT 21/AH=3Dh)
- 06h "fd_close" close file (see also INT 21/AH=3Eh)
- 07h "fd_read" read from file (see also INT 21/AH=3Fh)
- 08h "fd_write" write to file (see also INT 21/AH=40h)
- 09h "fd_delete" delete file (see also INT 21/AH=41h)
- 0Ah "fd_lseek" get/set file position (see also INT 21/AH=42h)
- 0Bh "fd_chmod" get/set file attributes (see also INT 21/AH=43h)
- 0Ch "fd_curdir" get current directory (see also INT 21/AH=47h)
- 0Dh "fd_sfirst" find first matching file (see also INT 21/AH=4Eh)
- 0Eh "fd_snext" find next matching file (see also INT 21/AH=4Fh)
- 0Fh "fd_rename" rename file (see also INT 21/AH=56h)
- 10h "fd_gsfdate" get/set file date (see also INT 21/AX=5700h)
- 11h "fd_mktemp" make temporary file (see also INT 21/AH=5Ah)
- 12h "fd_mknew" create new file (see also INT 21/AH=5Bh)
- 13h "fd_lock" lock/unlock file data (see also INT 21/AH=5Ch)
- 14h "fd_dup" duplicate file handle (see also INT 21/AH=45h)
- 15h "fd_dup2" force duplicate file handle (see also INT 21/AH=46h)
- 16h-19h ???
- 1Ah "fd_ioctl" I/O control emulation
- 1Bh "fd_commit" commit file to disk (see also INT 21/AH=68h)
- 1Ch "fd_expand" expand file name (see also INT 21/AH=60h)
- 1Dh ???
- 1Eh ???
- 1Fh "fd_sethandles" set number of handles for calling process
- SeeAlso: #04038
-
- Format of DR "execute DOS-compatible function" parameter block:
- Offset Size Description (Table 04038)
- 00h WORD function number (see #04037)
- ---function 00h---
- 02h WORD drive
- 04h DWORD -> DPB (see #04039)
- ---function 01h,02h,03h---
- 02h DWORD -> ASCIZ directory name
- ---function 04h---
- 02h DWORD -> ASCIZ filename
- 06h WORD file attributes
- ---function 05h---
- 02h DWORD -> ASCIZ filename
- 06h WORD open mode (see INT 21/AH=3Dh)
- ---function 06h---
- 02h WORD file handle
- ---function 07h,08h---
- 02h WORD file handle
- 04h DWORD -> buffer
- 08h WORD number of bytes to read or write
- ---function 09h---
- 02h DWORD -> ASCIZ filename
- ---function 0Ah---
- 02h WORD file handle
- 04h DWORD (call) desired offset
- (ret) new file position if function is successful
- 08h WORD seek origin (offset is calculated from specified position)
- 00h start of file
- 01h current position
- 02h end of file
- ---function 0Bh---
- 02h DWORD -> ASCIZ filename
- 06h WORD (call) new file attributes or new file owner
- (ret) current/new file attributes, depending on function
- 08h WORD subfunction
- 00h get attribute
- 01h set attribute
- 02h get extended attributes
- 03h set extended attributes (and password)
- 04h get encrypted password
- 05h set extended attributes (and encrypted password)
- 06h get file owner
- 07h set file owner
- Note: the password is taken from the first 8 bytes of the DTA
- ---function 0Ch---
- 02h WORD drive
- 04h DWORD -> 64-byte buffer for ASCIZ current directory path
- ---function 0Dh---
- 02h DWORD -> ASCIZ filespec
- 06h WORD file attributes
- 08h WORD (call) size of buffer pointed at by current DTA
- (ret) number of matching files returned???
- Note: if the volume label attribute is specified, the root
- directory will be searched
- if the buffer is at least 47 bytes, multiple matching
- entries will be stored in the DTA (at 21 bytes per
- entry)
- ---function 0Eh---
- 02h WORD number of additional matches to store in DTA
- (normally set to 0, but if DTA is at least 47 bytes, can be
- set to (DTAsize-21)/26 to return multiple matches)
- ---function 0Fh---
- 02h DWORD -> ASCIZ filename
- 06h DWORD -> ASCIZ new name
- ---function 10h---
- 02h WORD file handle
- 04h WORD subfunction
- 00h get date and time
- 01h set date and time
- 06h WORD file date
- 08h WORD file time
- ---function 11h---
- 02h DWORD -> ASCIZ pathname + 13 extra bytes for generated filename
- (if pathname does not end in backslash, one will be appended)
- 06h WORD file attributes
- ---function 12h---
- 02h DWORD -> ASCIZ filename
- 06h WORD file attributes
- ---function 13h---
- 02h WORD file handle
- 04h DWORD offset of start of region
- 08h DWORD length of region to lock/unlock
- 0Ch WORD subfunction (00h = lock, 01h = unlock)
- ---function 14h---
- 02h WORD file handle to be duplicated
- (new file handle is returned as function return value)
- ---function 15h---
- 02h WORD file handle to be duplicated
- 04h WORD file handle which is to become the duplicate
- ---function 1Ah, form 1---
- 02h WORD file handle
- 04h WORD IOCTL function number (00h,01h,06h,07h,0Ah)
- 06h WORD (ret) status
- ---function 1Ah, form 2---
- 02h WORD drive number
- 04h WORD IOCTL function number (08h,09h,0Eh,0Fh)
- 06h WORD (ret) status
- ---function 1Ah, form 3---
- 02h WORD file handle
- 04h WORD IOCTL function number (02h,03h,54h)
- 06h DWORD -> buffer
- 0Ah WORD (call) size of buffer in bytes
- (ret) size of returned data
- ---function 1Ah, form 4---
- 02h WORD drive number
- 04h WORD IOCTL function number (04h,05h)
- 06h DWORD -> buffer
- 0Ah WORD (call) size of buffer in bytes
- (ret) size of returned data
- ---function 1Bh---
- 02h WORD file handle of file to be committed to disk
- ---function 1Ch---
- 02h DWORD -> ASCIZ relative filename
- 06h DWORD -> buffer for absolute filename
- ---function 1Fh---
- 02h WORD desired number of file handles for process
-
- Format of DR Multiuser DOS Disk Parameter Block (DPB):
- Offset Size Description (Table 04039)
- 00h BYTE drive number (00h = A:)
- 01h BYTE relative unit number
- 02h WORD sector size in bytes
- 04h BYTE sectors per cluster - 1
- 05h BYTE shift count to convert clusters into sectors
- 06h WORD number of reserved sectors at beginning of drive
- 08h BYTE number of FATs
- 09h WORD number of root directory entries
- 0Bh WORD number of first sector containing user data
- 0Dh WORD number of clusterse on disk
- 0Fh BYTE number of sectors per FAT
- 10h WORD sector number of first directory sector
- 12h 4 BYTEs reserved
- 16h BYTE media ID byte (see #01356)
- 17h BYTE 00h if disk accessed, FFh if not
- 18h 6 BYTEs reserved
- 1Eh WORD number of free clusters on drive
- Note: this structure is a subset of the MS-DOS 3.x Drive Parameter Block
- SeeAlso: #04038,#01357 at INT 21/AH=1Fh,#01395 at INT 21/AH=32h
- --------O-E0----CL73-------------------------
- INT E0 - GSX-86, GEM/1, GEM/2 - API
- CL = 73h
- CH = 04h
- DS:DX -> parameter block
- --------O-E0----CL80-------------------------
- INT E0 - REAL/32 - "M_ALLOC" - ALLOCATE MEMORY
- CL = 80h
- DS:DX -> Memory Parameter Block (MPB) (see #04040)
- Return: AX = status (0000h success, else error code)
- SeeAlso: INT E0/CL=81h
-
- Format of REAL/32 Memory Parameter Block (MPB):
- Offset Size Description (Table 04040)
- 00h WORD (call) desired starting paragraph of block, or
- 0000h for anywhere
- (ret) starting paragraph of allocated block
- 02h WORD (call) minimum number of paragraphs required
- (ret) actual number of paragraphs allocated
- 04h WORD (call) maximum number of paragraphs to allocate
- (ret) actual number of paragraphs allocated
- 06h WORD process descriptor (see #04026) of memory's owner or 0000h
- 08h WORD flags (normally set to 0000h on call)
- SeeAlso: #04041
- --------O-E0----CL81-------------------------
- INT E0 - REAL/32 - "M_FREE" - DEALLOCATE MEMORY
- CL = 81h
- DS:DX -> Memory Free Parameter Block (MFPB) (see #04041)
- Return: AX = status (0000h success, else error code)
- SeeAlso: INT E0/CL=81h
-
- Format of REAL/32 Memory Free Parameter Block (MFPB) :
- Offset Size Description (Table 04041)
- 00h WORD starting segment of block to be freed
- 02h WORD reserved (0)
- SeeAlso: #04040
- --------O-E0----CL84-------------------------
- INT E0 - REAL/32 - "DEV_WAITFLAG" - WAIT ON SYSTEM FLAG
- CL = 84h
- DX = system flag ID
- Return: AX = status (0000h success, else error code)
- if successful, this function does not return until the system flag has
- been set by an interrupt handler (see INT E0/CL=85h); if the flag was
- already set, this call returns immediately
- SeeAlso: INT E0/CL=85h,INT E0/CL=B7h
- --------O-E0----CL85-------------------------
- INT E0 - REAL/32 - "DEV_SETFLAG" - SET SYSTEM FLAG
- CL = 85h
- DX = system flag ID
- Return: AX = status (0000h success, else error code)
- Note: REAL/32 returns an error if the flag was already set, which indicates
- that a previous logical interrupt has not yet been serviced
- SeeAlso: INT E0/CL=84h
- --------O-E0----CL86-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
- CL = 86h
- DS:DX -> queue descriptor (see #04042)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=87h
-
- Format of DR Multiuser DOS queue descriptor:
- Offset Size Description (Table 04042)
- 00h 2 WORDs internal use, initialize to zeros
- 04h WORD queue flags (see #04043)
- 06h 8 BYTEs queue name
- 0Eh WORD length of message
- 10h WORD number of messages
- 12h 4 WORDs internal use, initialize to zeros
- 1Ah WORD offset in system area of buffer for messages
-
- Bitfields for REAL/32 queue flags:
- Bit(s) Description (Table 04043)
- 0 mutual exclusion queue
- 1 can not be deleted
- 2 restricted to system processes
- 3 RSP message queue
- 4 reserved for internal use
- 5 RPL address queue
- 7-6 reserved for internal use
- 15-8 reserved for future use
- SeeAlso: #04042
- --------O-E0----CL87-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
- CL = 87h
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=86h,INT E0/CL=88h,INT E0/CL=89h
-
- Format of DR Multiuser DOS queue parameter block:
- Offset Size Description (Table 04044)
- 00h WORD internal use, initialize to zero
- 02h WORD queue ID (set by INT E0/CL=87h)
- 04h WORD internal use, initialize to zero
- 06h WORD offset of queue message buffer
- (REAL/32) if FFFFh, then full address of buffer is stored at
- offest 10h
- 08h 8 BYTEs queue name
- ---REAL/32 only----
- 10h DWORD segment:offset of queue message buffer
- SeeAlso: #04045
-
- Format of protected-mode REAL/32 Queue Parameter Block (QPB):
- Offset Size Description (Table 04045)
- 00h WORD internal use
- 02h WORD queue ID
- 04h WORD internal use
- 06h DWORD 32-bit offset to buffer
- 0Ah WORD selector for buffer
- 0Ch 8 BYTEs queue name
- SeeAlso: #04044
- --------O-E0----CL88-------------------------
- INT E0 - REAL/32 - "Q_DELETE" - DELETE SYSTEM QUEUE
- CL = 88h
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- SeeAlso: INT E0/CL=87h
- --------O-E0----CL89-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
- CL = 89h
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh,INT E0/CL=B6h
- --------O-E0----CL8A-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
- CL = 8Ah
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch,INT E0/CL=B6h
- --------O-E0----CL8B-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
- CL = 8Bh
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
- --------O-E0----CL8C-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
- CL = 8Ch
- DS:DX -> queue parameter block (QPB) (see #04044,#04045)
- Return: AX = status (0000h success, FFFFh failure)
- CX = error code (see #04021)
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
- --------O-E0----CL8E-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
- CL = 8Eh
- DX = FFFFh (optional) to force dispatch
- Return: nothing
- Desc: allow other processes of the same or higher priority to run if they
- are ready
- Notes: if DX=FFFFh, a dispatch is forced even if no other process is ready
- also supported by REAL/32
- SeeAlso: INT E0/CL=91h,INT 15/AX=1000h,INT 2F/AX=1680h
- --------O-E0----CL8F-------------------------
- INT E0 - REAL/32 - "P_TERM" - TERMINATE CALLING PROCESS
- CL = 8Fh
- DX = termination code
- Return: never if successful
- AX = FFFFh on failure
- Note: this function can not terminate processes whose KEEP flag is set
- if the termination code is FFh, this function can terminate the process
- even if its SYSTEM flag is on; otherwise, only user processes can
- terminate themselves
- SeeAlso: INT E0/CL=90h,INT 21/AH=4Ch
- --------O-E0----CL90-------------------------
- INT E0 - REAL/32 - "P_CREATE" - CREATE A PROCESS
- CL = 90h
- DS:DX -> process descriptor in calling process' system memory area
- (see #04026)
- Return: AX = status
- Notes: this call can create more than one process if the specied process
- descriptor's link (next-process) field is nonzero
- all reserved and unused fields in the process descriptor should be
- filled with zeros; passing an invalid descriptor or pointer may
- crash the system because the descriptor is not checked by the OS
- the newly-created process(es) is always a native process, which can not
- make DOS calls
- SeeAlso: INT E0/CL=8Fh
- --------O-E0----CL91-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
- CL = 91h
- DL = new priority (00h highest to FFh lowest)
- Return: nothing
- Notes: sets priority of calling process; transient processes are initialized
- to priority C8h
- also supported by REAL/32
- SeeAlso: INT E0/CL=8Eh
- --------O-E0----CL92-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "C_ATTACH" - ATTACH TO DEFAULT CONSOLE
- CL = 92h
- Return: AX = status
- Notes: also supported by REAL/32
- if the console is currently owned by another process, this function
- waits until the console is available
- SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=9Eh,INT E0/CL=A2h
- --------O-E0----CL93-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
- CL = 93h
- Return: AX = status
- 0000h successfully detached
- FFFFh detach failed
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=92h,INT E0/CL=A6h
- --------O-E0----CL94-------------------------
- INT E0 - REAL/32 - "C_SET" - SET PROCESS'S DEFAULT CONSOLE
- CL = 94h
- DX = console ID
- Return: AX = status (0000h success, else error code)
- SeeAlso: INT E0/CL=92h,INT E0/CL=95h,INT E0/CL=99h
- --------O-E0----CL95-------------------------
- INT E0 - REAL/32 - "C_ASSIGN" - ASSIGN DEFAULT CONSOLE TO ANOTHER PROCESS
- CL = 95h
- DS:DX -> Assign Control Parameter Block (ACPB) (see #04046)
- Return: AX = status
- SeeAlso: INT E0/CL=94h,INT E0/CL=99h
-
- Format of REAL/32 Assign Control Parameter Block (ACPB):
- Offset Size Description (Table 04046)
- 00h BYTE ID of console to assign
- 01h BYTE flag: if FFh, new process must have CNS as console for this
- call to succeed
- 02h DWORD -> process descriptor (see #04026) or 00000000h
- 06h 8 BYTEs name of process to search for if descriptor field above is zero
- --------O-E0----CL96-------------------------
- INT E0 - REAL/32 - "P_CLI" - RUN COMMAND LINE INTERFACE
- CL = 96h
- DS:DX -> Command Line Buffer (CLBUF) (see #04047)
- Return: AX = status
- Desc: execute the indicated command concurrently with the calling process;
- system queue commands, .BAT, .CMD, .COM, and .EXE files can be
- executed
- Note: the calling process will lose its virtual console and must reattach it
- before attempting any I/O
- SeeAlso: INT E0/CL=92h
-
- Format of REAL/32 Command Line Buffer (CLBUF):
- Offset Size Description (Table 04047)
- 00h BYTE reserved (0)
- 01h 128 BYTEs ASCIZ command line
- 81h BYTE (0)
- --------O-E0----CL99-------------------------
- INT E0 - REAL/32 - "C_GET" - GET DEFAULT CONSOLE
- CL = 99h
- Return: AX = default console ID
- SeeAlso: INT E0/CL=94h
- --------O-E0----CL9A-------------------------
- INT E0 - REAL/32 - "S_SYSDAT" - GET SYSTEM DATA AREA
- CL = 9Ah
- Return: ES:AX -> system data area (see #04048)
- may destroy SI,DI
-
- Format of REAL/32 system data area:
- Offset Size Description (Table 04048)
- 00h DWORD address of supervisor entry point
- 04h 36 BYTEs reserved
- 28h DWORD address of XIOS entry point
- 2Ch DWORD address of XIOS initialization point
- 30h 8 BYTEs reserved
- 38h DWORD address of IRET dispatcher entry point
- 3Ch DWORD address of RETF dispatcher entry point
- 40h WORD segment of operating system code
- 42h WORD paragraph address of first Resident System Process (RSP)
- 44h WORD paragraph after OS system area
- 46h BYTE reserved
- 47h BYTE number of system console devices
- 48h BYTE number of system list (printer) devices
- 49h BYTE number of Character Control blocks
- 4Ah BYTE number of system flags
- 4Bh BYTE current search disk
- 4Ch WORD maximum memory per process
- 4Eh BYTE reserved
- 4Fh BYTE "dayfile" (flag, true if FFh)
- 50h BYTE default disk for temporary files
- 51h BYTE system ticks per second (typically 60)
- 52h WORD offset of Locked Unused list
- 54h WORD offset of CCB table
- 56h WORD offset of system flag table
- 58h WORD offset of root of Memory Descriptor Unused list
- 5Ah WORD offset of Memory Free list
- 5Ch WORD offset of Process Unused list
- 5Eh WORD offset of Queue Unused list
- 60h 4 WORDs (no longer used) QMAU
- 68h WORD offset of root of Ready List
- 6Ah WORD offset of root of Delay List
- 6Ch WORD offset of Dispatcher Ready list
- 6Eh WORD offset of root of Poll List
- 70h WORD reserved
- 72h WORD offset of root of Thread List
- 74h WORD offset of root of Queue List
- 76h WORD offset of Memory Allocation list
- 78h WORD segment of version string
- 7Ah WORD BDOS version number
- 7Ch WORD OS version number
- 7Eh WORD number of days since 01jan1978
- 80h BYTE current time: hour
- 81h BYTE current time: minute
- 82h BYTE current time: second
- 83h BYTE number of XIOS consoles
- 84h BYTE number of XIOS list (printer) devices
- 85h BYTE total number of character devices
- 86h WORD offset of LCB table
- 88h WORD bitmap of open files
- 8Ah BYTE maximum locked records per process
- 8Bh BYTE maximum open files per process
- 8Ch WORD offset of process descriptor for math coprocessor's owner
- 8Eh WORD offset of Auxiliary Control Block
- 90h 8 BYTEs reserved
- 98h WORD offset of root Memory Window Descriptor
- 9Ah WORD reserved
- 9Ch BYTE number of Auxiliary Control Blocks
- 9Dh BYTE default search disk
- 9Eh BYTE reserved
- 9Fh BYTE number of physical consoles
- A0h DWORD address of 8087 interrupt handler
- A4h DWORD address of default 8087 exception handler
- ... reserved
- C00h 82 BYTEs XIOS header structure (see #04049)
-
- Format of REAL/32 XIOS header structure:
- Offset Size Description (Table 04049)
- 00h 3 BYTEs XIOS initialization entry point
- 03h 3 BYTEs XIOS service entry point
- 06h WORD segment address of system data
- 08h DWORD address of supervisor entry point
- 0Ch BYTE set tick flag
- 0Dh BYTE ticks per second
- 0Eh BYTE global Door Open interrupt flag
- 0Fh BYTE number of Auxiliary Control Blocks
- 10h BYTE number of physical consoles
- 11h BYTE number of virtual consoles
- 12h BYTE number of logical consoles
- 13h BYTE number of list control blocks
- 14h WORD offset of CCB table
- 16h WORD offset of LCB table
- 18h 16 WORDs offsets into DPH for drives A-P
- 38h WORD buffer size in paragraphs
- 3Ah WORD offset of ACB table
- 3Ch WORD used by OEM
- 3Eh WORD offset of CCB pointer array
- 40h WORD offset of LCB pointer array
- 42h WORD offset of ACB pointer array
- 44h BYTE 'first' flag
- 45h BYTE unused
- 46h WORD offset of print device support table
- 48h WORD offset of aux device support table
- 4Ah WORD XIOS extra segment
- 4Ch WORD segment of save end address for debug
- 4Eh WORD segment of save start address for debug
- 50h BYTE number of main virtual console
- 51h WORD segment of XIOS code
- SeeAlso: #04048
- --------O-E0----CL9C-------------------------
- INT E0 - REAL/32 - "P_PDADR" - GET ADDRESS OF PROCESS DESCRIPTOR
- CL = 9Ch
- Return: ES:AX -> caller's process descriptor (see #04026)
- may destroy SI,DI
- SeeAlso: INT E0/CL=8Fh,INT E0/CL=90h
- --------O-E0----CL9D-------------------------
- INT E0 - REAL/32 - "P_ABORT" - ABORT PROCESS BY NAME OR DESCRIPTOR
- CL = 9Dh
- DS:DX -> Abort Parameter Block (see #04050)
- Return: AX = status
- may destroy SI,DI,DS
- SeeAlso: INT E0/CL=8Fh,INT E0/CL=9Ch
-
- Format of REAL/32 Abort Parameter Block:
- Offset Size Description (Table 04050)
- 00h WORD process descriptor of process to abort, or 0000h
- 02h WORD termination code
- 04h BYTE default console number
- 05h BYTE reserved (0)
- 06h 8 BYTEs name of process to abort, if descriptor at offset 00h is 0000h
- --------O-E0----CL9E-------------------------
- INT E0 - REAL/32 - "L_ATTACH" - ATTACH TO DEFAULT LIST DEVICE
- CL = 9Eh
- Return: AX = status
- may destroy SI,DI
- SeeAlso: INT E0/CL=92h,INT E0/CL=9Fh,INT E0/CL=A0h,INT E0/CL=A1h
- --------O-E0----CL9F-------------------------
- INT E0 - REAL/32 - "L_DETACH" - DETACH FROM DEFAULT LIST DEVICE
- CL = 9Fh
- Return: AX = status
- may destroy SI,DI
- SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh
- --------O-E0----CLA0-------------------------
- INT E0 - REAL/32 - "L_SET" - SET DEFAULT LIST DEVICE
- CL = A0h
- DX = ID of list (printer) device
- Return: AX = status (0000h success, FFFFh if invalid printer number)
- may destroy SI,DI
- SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A4h
- --------O-E0----CLA1-------------------------
- INT E0 - REAL/32 - "L_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT LIST DEVICE
- CL = A1h
- Return: AX = status (00h = successful, FFh = unable to attach)
- may destroy SI,DI
- Desc: attach the default list device to the calling process only if it is
- currently available
- SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A0h
- --------O-E0----CLA2-------------------------
- INT E0 - REAL/32 - "C_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT CONSOLE
- CL = A2h
- Return: AL = status (FFh = console attached to another process)
- Note: if the console is currently owned by another process, this function
- will return an error code instead of attaching or waiting
- SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=92h
- --------O-E0----CLA3-------------------------
- INT E0 - ConcCP/M,DR Multiuser DOS,REAL/32 - "S_OSVER" - GET OS VERSION
- CL = A3h
- Return: AX = operating system version (see #04023) (see also INT 21/AX=4451h)
- SeeAlso: INT E0/CL=0Ch,INT 21/AX=4451h
- --------O-E0----CLA4-------------------------
- INT E0 - REAL/32 - "L_GET" - GET DEFAULT LIST (PRINTER) DEVICE
- CL = A4h
- Return: AL = number of default list device
- SeeAlso: INT E0/CL=A0h
- --------O-E0----CLA5-------------------------
- INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
- CL = A5h
- Return: nothing (DR)
- AX = status (REAL/32)
- Desc: attaches the default auxiliary device to the calling process unless
- it is already attached to another process, in which case the call
- blocks until the device becomes available
- Notes: this call should be used before attempting to read or write from
- the AUX device; however, the I/O calls internally call this function
- to ensure device ownership
- also supported by REAL/32
- SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
- SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
- --------O-E0----CLA6-------------------------
- INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
- CL = A6h
- Return: AX = status
- 0000h successfully detached
- FFFFh detach failed
- CX = error code
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
- --------O-E0----CLA7-------------------------
- INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
- CL = A7h
- Return: AX = status
- 0000h attached
- FFFFh unable to attach
- Desc: attaches the default auxiliary device to the calling process if it is
- available
- Notes: does not block if the device is already in use
- also supported by REAL/32
- SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
- --------O-E0----CLA8-------------------------
- INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
- CL = A8h
- DL = auxiliary device number
- Return: AX = status
- 0000h successful
- FFFFh failed
- CX = error code
- Desc: specify which physical device will become AUX
- SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
- --------O-E0----CLA9-------------------------
- INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
- CL = A9h
- Return: AL = current default auxiliary device number
- Desc: determine which physical device is currently AUX
- SeeAlso: INT E0/CL=A8h
- --------O-E0----CLAC-------------------------
- INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
- CL = ACh
- DS:DX -> character control block (CHCB) (see #04051,#04052)
- Return: AX = number of characters read
- Desc: read characters from the default auxiliary (AUXn:) device into a buffer
- until the buffer is full or the device is no longer ready
- Notes: if the device is initially not ready, blocks until at least one
- character has been read
- if another process owns AUX, this call blocks until the device becomes
- available
- also supported by REAL/32
- SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
-
- Format of DR Multiuser DOS character control block (CHCB):
- Offset Size Description (Table 04051)
- 00h DWORD pointer to character buffer
- 04h WORD length of character buffer
- Note: this version of the structure is used by REAL/32 in real mode
- SeeAlso: #04059
-
- Format of REAL/32 protected-mode Character Control Block (CHCB):
- Offset Size Description (Table 04052)
- 00h DWORD 32-bit offset of character buffer
- 04h WORD selector for character buffer
- 06h WORD length of character buffer
- SeeAlso: #04051
- --------O-E0----CLAD-------------------------
- INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
- CL = ADh
- DS:DX -> character control block (see #04051,#04052)
- Return: AX = number of characters written
- Notes: does not return until at least one character has been written
- also supported by REAL/32
- SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
- --------O-E0----CLB0-------------------------
- INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
- CL = B0h
- DX:DX -> AUX device parameter block (see #04053)
- Return: AX = status
- 0000h successful
- parameter block updated
- FFFFh failed
- CX = error code
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
-
- Format of DR Multiuser DOS AUX device parameter block:
- Offset Size Description (Table 04053)
- 00h BYTE function (00h get, 01h set)
- 01h BYTE baud rate (see #04055) FFh = don't change/unknown
- 02h BYTE parity (see #04054)
- 03h BYTE stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
- 04h BYTE data bits (05h-08h or FFh unknown/don't change)
- 05h BYTE handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
- FFh unknown/don't change)
- 06h BYTE XON character, FFh unknown/don't change
- 07h BYTE XOFF character, FFh unknown/don't change
-
- (Table 04054)
- Values for DR Multiuser DOS AUX parity:
- 00h none
- 01h odd
- 02h none
- 03h even
- 04h stick parity bit
- FFh don't change/unknown
- SeeAlso: #04053,#04055
-
- (Table 04055)
- Values for DR Multiuser DOS AUX baud rate:
- 00h 50 baud
- 01h 62.5 baud
- 02h 75 baud
- 03h 110 baud
- 04h 134.5 baud
- 05h 150 baud
- 06h 200 baud
- 07h 300 baud
- 08h 600 baud
- 09h 1200 baud
- 0Ah 1800 baud
- 0Bh 2000 baud
- 0Ch 2400 baud
- 0Dh 3600 baud
- 0Eh 4800 baud
- 0Fh 7200 baud
- 10h 9600 baud
- 11h 19200 baud
- 12h 38400 baud
- 13h 56000 baud
- 14h 76800 baud
- 15h 115200 baud
- SeeAlso: #04053,#04054
- --------O-E0----CLB1-------------------------
- INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
- CL = B1h
- DS:DX -> AUX device control block (see #04056)
- Return: AX = status
- 0000h successful
- control block updated
- FFFFh failed
- CX = error code
- Note: also supported by REAL/32
- SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
-
- Format of DR Multiuser DOS AUX device control block:
- Offset Size Description (Table 04056)
- 00h BYTE function (00h get, 01h set)
- 01h BYTE DTR state (00h low, 01h high, FFh unknown/don't change)
- 02h BYTE RTS state (00h low, 01h high, FFh unknown/don't change)
- 03h BYTE DSR state (00h low, 01h high, FFh unknown/don't change)
- 04h BYTE CTS state (00h low, 01h high, FFh unknown/don't change)
- 05h BYTE DCD state (00h low, 01h high, FFh unknown/don't change)
- 06h BYTE RI state (00h inactive, 01h active, FFh unknown/don't change)
- --------O-E0----CLB2-------------------------
- INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
- CL = B2h
- DX = duration of break in system ticks (0001h-FFFFh)
- Return: AX = status
- 0000h successful
- break signal completed
- FFFFh failed
- CX = error code
- Notes: if the AUX device is currently owned by another process, this call will
- block until the device becomes available
- also supported by REAL/32
- SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
- --------O-E0----CLB3-------------------------
- INT E0 R - REAL/32 - "MP_ALLOC" - ALLOCATE PHYSICAL MEMORY
- CL = B3h
- DX = number of 4K pages to allocate
- Return: AX = number of first 4K page allocated, or FFFFh on error
- Note: memory allocated with this function is not automatically freed when
- the process terminates
- SeeAlso: INT E0/CL=B4h,INT E0/CL=B5h
- --------O-E0----CLB4-------------------------
- INT E0 R - REAL/32 - "MP_FREE" - DEALLOCATE PHYSICAL MEMORY
- CL = B4h
- DX = number of the physical page to free
- Return: AX = status (0000h successful, FFFFh error)
- SeeAlso: INT E0/CL=B3h
- --------O-E0----CLB5-------------------------
- INT E0 R - REAL/32 - "MP_MAP" - MAP PHYSICAL MEMORY
- CL = B5h
- DS:DX -> Memory Physical Parameter Block (see #04057)
- Return: AX = status (0000h successful, FFFFh error)
- may destroy SI,DI,DS
- SeeAlso: INT E0/CL=B3h
-
- Format of REAL/32 Memory Physical Parameter Block:
- Offset Size Description (Table 04057)
- 00h WORD 4K page number in first megabyte to be mapped
- 02h WORD number of page to map into above page, or 0000h to unmap
- 04h WORD window number (0000h, as only one window currently supported)
- 06h WORD reserved
- Note: all users of the system share the window, so applications should not
- use it for arguments to system calls, attempt to read/write to/from
- files via the window, etc.
- --------O-E0----CLB6-------------------------
- INT E0 - REAL/32 - "Q_NCREAD" - CONDITIONALLY NONDESTRUCTIVELY READ QUEUE
- CL = B6h
- DS:DX -> Queue Parameter Block (QPB) (see #04045,#04044)
- Return: AX = status
- SeeAlso: INT E0/CL=89h,INT E0/CL=8Ah
- --------O-E0----CLB7-------------------------
- INT E0 - REAL/32 - "DEV_TWAITFLAG" - TIMED WAIT ON SYSTEM FLAG
- CL = B7h
- DS:DX -> Flag Parameter Block (FPB) (see #04058)
- Return: AX = status
- may destroy SI,DI,DS
- Note: if the flag was already set, this function returns immediately
- SeeAlso: INT E0/CL=84h,INT E0/CL=85h
-
- Format of REAL/32 Flag Parameter Block (FPB):
- Offset Size Description (Table 04058)
- 00h WORD number of system flag on which to wait
- 02h WORD maximum number of system ticks (see INT E0/CL=9Ah) to wait
- --------O-E0----CLB8-------------------------
- INT E0 - REAL/32 - "DEV_MAP" - GET/SET SERIAL/PARALLEL PORT MAPPINGS
- CL = B8h
- DS:DX -> Device Map Parameter Block (DEVPB) (see #04059)
- Return: nothing???
- may destroy SI,DI,DS
-
- Format of REAL/32 Device Map Parameter Block (DEVPB):
- Offset Size Description (Table 04059)
- 00h WORD direction (00h = get current mapping, 01h = set new mapping)
- 02h 4 BYTEs physical device IDs which map into LPT1 - LPT4
- 06h 4 BYTEs physical device IDs which map into COM1 - COM4
- Note: LPT4 and COM3/COM4 are reserved on early versions of Multiuser DOS,
- but are supported from at least CCI Multiuser DOS v7.22 onward
- --------O-E0----CLB9-------------------------
- INT E0 - REAL/32 - "L_TIMEOUT" - SET LIST DEVICE TIMEOUT
- CL = B9h
- DX = timeout value in system ticks (see #04048)
- 0000h-FFEFh = new number of system ticks
- FFFDh = get current value without changing
- FFFEh = start timeout count
- FFFFh = never timeout
- Return: AX = status, or current timeout value if DX=FFFDh on entry
- may destroy SI,DI
- SeeAlso: INT E0/CL=BAh
- --------O-E0----CLBA-------------------------
- INT E0 - REAL/32 - "A_TIMEOUT" - SET AUX DEVICE TIMEOUT
- CL = BAh
- DX = timeout value in system ticks (see #04048)
- 0000h-FFEFh = new number of system ticks
- FFFDh = get current value without changing
- FFFEh = start timeout count
- FFFFh = never timeout
- Return: AX = status, or current timeout value if DX=FFFDh on entry
- may destroy SI,DI
- SeeAlso: INT E0/CL=B9h
- --------O-E0----CLBD-------------------------
- INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
- CL = BDh
- DX = delay in system ticks (typically 16.6 ms/tick)
- Return: after the delay elapses
- no results
- Notes: the length of a system tick is installation-dependent (typically
- 1/50 or 1/60 second); the length may be determined by reading the
- TICKSPERSEC value from the system data segment
- the actual delay before the process is rescheduled to run may be up to
- one tick longer than requested; the delay between rescheduling and
- actual execution cannot be predicted if higher-priority processes
- are awaiting a turn at the CPU
- SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
- --------g-E00000-----------------------------
- INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
- AX = 0000h
- Return: nothing
- Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
- which specially-written .COM or .EXE programs form robots battling
- each other in a user-defined arena
- --------g-E00001-----------------------------
- INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
- AX = 0001h
- BX = speed (0-maximum for robot)
- CX = direction (0-359 degrees)
- Return: nothing
- Notes: the speed will change to the specified value at the maximum
- acceleration the robot is capable of; if the robot is already moving
- faster than its maximum maneuverability speed, it will not be able
- to change direction
- this call also terminates the current robot's turn
- SeeAlso: AX=0000h,AX=0002h,AX=0003h
- --------g-E00002-----------------------------
- INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
- AX = 0002h
- BX = direction (0-359 degrees)
- CX = resolution (0-45 degrees)
- Return: AX = status
- FFFFh if nothing detected
- else robot ID (0-19)
- BX = range to detected robot
- Notes: the scan searches within CX degrees to either side of the specified
- direction
- the scanner will see right through walls, but shells will not pass
- through walls
- this call also terminates the current robot's turn
- SeeAlso: AX=0000h,AX=0001h,AX=0003h
- --------g-E00003-----------------------------
- INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
- AX = 0003h
- BX = direction (0-359 degrees)
- CX = range (0-700)
- Return: AX = status (0000h not fired, else ID of shell fired)
- Notes: up to seven shells may be in flight for a robot at one time; the cannon
- takes 50 ticks to reload
- this call also terminates the current robot's turn
- SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
- --------g-E00010-----------------------------
- INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
- AX = 0010h
- Return: BX = current X coordinate (0-999)
- CX = current Y coordinate (0-999)
- --------g-E00011-----------------------------
- INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
- AX = 0011h
- BX = target robot ID
- CX = data to be sent
- Return: AX = status (0000h data could not be sent, 0001h data sent)
- Note: this call costs one unit of battery power
- --------g-E00012-----------------------------
- INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
- AX = 0012h
- Return: AX = status
- 0000h no data available
- 0001h data retrieved
- BX = sender's ID
- CX = data
- Note: each robot has a 20-word receive FIFO; if the FIFO is full, other
- robots will be unable to send more data until some is read
- --------g-E00013-----------------------------
- INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
- AX = 0013h
- Return: BX = damage status
- Note: the initial value depends on configuration, but is typically 100; as
- the robot is damaged, it decreases
- --------g-E00014-----------------------------
- INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
- AX = 0014h
- Return: BX = current speed
- --------g-E00015-----------------------------
- INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
- AX = 0015h
- Return: BX = current battery charge
- Note: the battery starts off with 1000 units of charge, and is constantly
- being charged by solar panels and constantly discharged by motion;
- the battery is charged at 4 units per turn and discharged at
- 0.1*speed units per turn.
- --------g-E00016-----------------------------
- INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
- AX = 0016h
- Return: BX:CX = number of game ticks elapsed (not related to real time)
- --------g-E00017-----------------------------
- INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
- AX = 0017h
- BX = angle (0-359 degrees)
- Return: BX:CX = 100000*sine of angle
- SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
- --------g-E00018-----------------------------
- INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
- AX = 0018h
- BX = angle (0-359 degrees)
- Return: BX:CX = 100000*cosine of angle
- SeeAlso: AX=0017h,AX=0019h,AX=001Ah
- --------g-E00019-----------------------------
- INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
- AX = 0019h
- BX = angle (0-359 degrees)
- Return: BX:CX = 100000*tangent of angle
- SeeAlso: AX=0017h,AX=0018h,AX=001Ah
- --------g-E0001A-----------------------------
- INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
- AX = 001Ah
- BX:CX = 100000*tangent of an angle
- Return: AX = angle (-90 to +90 degrees)
- SeeAlso: AX=0017h,AX=0018h,AX=0019h
- --------g-E0001B-----------------------------
- INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
- AX = 001Bh
- BX:CX = value
- Return: BX:CX = square root
- SeeAlso: AX=0017h
- --------g-E0001C-----------------------------
- INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
- AX = 001Ch
- BX:CX -> pattern array
- Return: nothing
- Note: the pattern array consists of five bytes, the low five bits of each
- specifying the bit pattern for one line of the robot's screen display
- --------g-E0001D-----------------------------
- INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
- AX = 001Dh
- BX = flag number (0 or 1)
- CX = new value (0 reset, 1 set)
- Return: nothing
- Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
- which specially-written .COM or .EXE programs form robots battling
- each other in a user-defined arena
- Note: the two flag markers may be used for any purpose, typically for
- debugging to provide a visual display of progress
- --------g-E0001E-----------------------------
- INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
- AX = 001Eh
- BX = number of armor units to buy (negative to sell)
- Return: nothing
- Note: each armor unit is worth 50 battery units; the robot's armor rating
- will not go above its initial rating, so attempts to purchase more
- will waste battery units
- SeeAlso: AX=001Fh
- --------g-E0001F-----------------------------
- INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
- AX = 001Fh
- BX = number of shells to buy
- Return: nothing
- Note: each shell costs ten battery units
- SeeAlso: AX=001Eh,AX=0020h
- --------g-E00020-----------------------------
- INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
- AX = 0020h
- Return: BX = number of shells remaining
- SeeAlso: AX=001Fh
- --------g-E00021-----------------------------
- INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
- AX = 0021h
- BX:CX -> 81-byte buffer for map (see #04060)
- Return: buffer filled with 9x9 area of map centered on robot's position
-
- (Table 04060)
- Values for PCROBOTS map squares:
- 2Eh '.' empty square
- 44h 'D' damaging trap
- 52h 'R' refueling point
- 58h 'X' wall
- --------g-E00022-----------------------------
- INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
- AX = 0022h
- BX = new state (0000h become visible, 0001h become invisible)
- Return: nothing
- Notes: this function has no effect if the robot is not capable of invisibility
- the robot can only stay invisible for 100 turns, after which it will
- automatically become visible; it must also be remain visible for
- as many turns as it was invisible before it can turn invisible
- again
- SeeAlso: AX=0024h,AX=0080h
- --------g-E00023-----------------------------
- INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
- AX = 0023h
- Return: BX = status of last shell to land
- 0000h missed completely
- 0001h hit a wall
- 0002h hit a robot within 50-square radius
- 0003h hit a robot within 25-square radius
- 0004h hit a robot within 5-square radius
- --------g-E00024-----------------------------
- INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
- AX = 0024h
- Return: BX = visibility (0000h visible, 0001h invisible)
- SeeAlso: AX=0022h,AX=0080h
- --------g-E00025-----------------------------
- INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
- AX = 0025h
- BX = Y
- CX = X
- Return: AX = angle (arctangent of Y/X)
- --------g-E00026-----------------------------
- INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
- AX = 0026h
- Return: AX = robot ID
- --------g-E00027-----------------------------
- INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
- AX = 0027h
- BX:CX = ASCIZ IFF string
- Return: nothing
- Note: the IFF string may only be set once
- SeeAlso: AX=0028h,AX=0029h
- --------g-E00028-----------------------------
- INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
- AX = 0028h
- BX = robot ID to test
- Return: AX = status
- 0000h IFF strings match
- 0001h IFF strings differ or invalid robot ID
- SeeAlso: AX=0027h
- --------g-E00029-----------------------------
- INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
- AX = 0029h
- BX:CX -> ASCIZ name string
- Return: nothing
- Note: the name may only be set once
- SeeAlso: AX=0027h,AX=002Ah
- --------g-E0002A-----------------------------
- INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
- AX = 002Ah
- BX:CX -> ASCIZ name string
- DX = first ID to check
- Return: AX = robot ID or FFFFh if no robot with specified name
- SeeAlso: AX=0028h,AX=0029h,AX=002Bh
- --------g-E0002B-----------------------------
- INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
- AX = 002Bh
- Return: AX = team ID (0-2) or FFFFh if 'loner'
- SeeAlso: AX=0029h
- --------g-E0002C-----------------------------
- INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
- AX = 002Ch
- BX = shell ID
- Return: AX = status
- 0000h missed completely
- 0001h hit a wall
- 0002h hit a robot within a 50-square radius
- 0003h hit a robot within a 25-square radius
- 0004h hit a robot within a 5-square radius
- 0005h shell not known (too old or not yet fired)
- 0006h shell still in flight
- SeeAlso: AX=0003h
- --------g-E0002D-----------------------------
- INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
- AX = 002Dh
- BX:CX -> X word variable
- Return: AX = status (0001h OK, 0000h problem with address)
- Note: after this call, PCROBOTS will automatically update the specified
- word whenever the robot moves
- SeeAlso: AX=002Eh
- --------g-E0002E-----------------------------
- INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
- AX = 002Eh
- BX:CX -> Y word variable
- Return: AX = status (0001h OK, 0000h problem with address)
- Note: after this call, PCROBOTS will automatically update the specified
- word whenever the robot moves
- SeeAlso: AX=002Dh
- --------g-E00080-----------------------------
- INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
- AX = 0080h
- BX = basic configuration (see #04061)
- CX = advanced configuration (see #04062)
- Return: AX = status (0001h OK, 0000h not first call in program)
- Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
- which specially-written .COM or .EXE programs form robots battling
- each other in a user-defined arena
- Notes: a maximum of ten points may be allocated to the robot; if you attempt
- to allocate more, some items will be given a value of zero. If this
- function is not called, each attribute is set to the default value
- of 2.
- if the invisibility option is chosen, the robot will start with only
- 900 cannon shells instead of the default 1000
-
- Bitfields for PCROBOTS basic configuration:
- Bit(s) Description (Table 04061)
- 0-3 maximum speed (0-4 = 50,75,100,150,200)
- 4-7 maneuverability (0-4 = 20%,35%,50%,75%,100%)
- 8-11 cannon range (0-4 = 300,500,700,1000,1500)
- 12-15 robot armor (0-4 = 50,75,100,150,200)
-
- Bitfields for PCROBOTS advanced configuration:
- Bit(s) Description (Table 04062)
- 0-2 robot acceleration (0-4 = 5,7,10,15,20)
- 3 capable of invisibility
- --------r-E1---------------------------------
- INT E1 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------N-E1---------------------------------
- INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
- Desc: points at a data table
- SeeAlso: INT E2
- --------O-E1---------------------------------
- INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
- CL = function number (see #04019,#04020)
- DS,DX = parameters
- Return: as appropriate for function
- CX is often the error code (see #04021)
- Desc: used by some applications which alter CP/M functions while running a
- child program, to store the original INT E0 vector before
- intercepting INT E0
- SeeAlso: #04019 at INT E0"CP/M"
- ----------E1---------------------------------
- INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
- Desc: used to store data; the low word of the vector is the data segment for
- the first task; the high word is the data segment of the second task
- (DeskMate supports 2-way task switching between small- or
- medium-model applications)
- Program: DeskMate is a proprietary GUI from Tandy distributed with several
- models of the Tandy 1000's, 2500's, 3000's, and laptops. Retail
- and runtime versions also exist. Some Tandy's are designed to
- boot directly into DeskMate.
- SeeAlso: INT E0"DeskMate"
- --------r-E2---------------------------------
- INT E2 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------N-E2---------------------------------
- INT E2 - PC Cluster Program - RELOCATED INT 1C
- SeeAlso: INT 1C
- --------r-E3---------------------------------
- INT E3 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-E40005-----------------------------
- INT E4 - Logitech Modula v2.0 - MonitorEntry
- AX = 0005h
- BX = priority
- Return: nothing
- SeeAlso: AX=0006h
- --------r-E40006-----------------------------
- INT E4 - Logitech Modula v2.0 - MonitorExit
- AX = 0006h
- Return: nothing
- SeeAlso: AX=0005h
- --------r-E4---------------------------------
- INT E4 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-E5---------------------------------
- INT E5 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-E6---------------------------------
- INT E6 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------O-E6---------------------------------
- INT E6 C - CP/M-86 v1.1 - UNKNOWN DISK DRIVE
- AX = function which accessed drive
- 0000h SELDSK
- 0001h READ
- 0002h WRITE
- 0003h HOME
- DX:BX -> parameter block (see #04063)
- Return: AX = return value
- Desc: called by CP/M-86 kernel when an unknown disk drive is used, which
- permits an application to provide access services
-
- Format of CP/M-86 unknown-drive paramter block:
- Offset Size Description (Table 04063)
- 00h BYTE drive number (00h = first unknown drive, etc.)
- 01h BYTE deblocking flag (00h = normal write, 01h = directory write)
- 02h WORD track number
- 04h WORD sector number
- 06h DWORD data transfer address
- 0Ah BYTE verify flag (nonzero to verify writes)
- Note: in CP/M-86 v1.1, this is actually a portion of a BIOS disk data
- table which starts one byte before the address given to the INT E6
- handler; that extra byte is the current logical drive number
- --------O-E600-------------------------------
- INT E6 - Linux DOSEMU - INSTALLATION CHECK
- AH = 00h
- Return: AX = AA55h if installed
- BH = major version number
- BL = minor version number
- CX = patchlevel
- Notes: check for the BIOS date string "02/25/93" at F000:FFF5 before
- calling this function. In addition, the segment address of this
- vector should be F000h (for existing versions of DOSemu, the
- vector is F000h:0E60h)
- SeeAlso: AH=FFh
- --------O-E601-------------------------------
- INT E6 - Linux DOSEMU - REGISTER DUMP
- AH = 01h
- Return: nothing
- SeeAlso: AH=00h
- --------O-E602-------------------------------
- INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
- AH = 02h
- BX = base I/O port address
- CX = number of consecutive I/O ports
- CF set to allow DOS to use ports
- CF clear if DOS should not be allowed to use ports
- Return: nothing
- SeeAlso: AH=00h
- --------O-E605-------------------------------
- INT E6 - Linux DOSEMU - STARTUP BANNER
- AH = 05h
- Return: nothing
- SeeAlso: AH=00h
- --------O-E612-------------------------------
- INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
- AH = 12h
- BX = new "hogthreshold" (00h-99h)
- Return: nothing
- Desc: specify how much CPU time DOSEMU may use
- SeeAlso: AH=00h
- --------O-E622-------------------------------
- INT E6 - Linux DOSEMU - GET EMS STATUS
- AH = 22h
- Return: ???
- SeeAlso: AH=00h
- --------O-E630-------------------------------
- INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
- AH = 30h
- BX = new flag state (0 = false, 1 = true)
- Return: nothing
- SeeAlso: AH=00h
- --------O-E650-------------------------------
- INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
- AH = 50h
- ES:DX -> ASCIZ Unix command
- SeeAlso: AH=00h,AH=51h
- --------O-E651-------------------------------
- INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
- AH = 51h
- ES:DX -> ASCIZ DOS command
- SeeAlso: AH=00h,AH=50h
- --------O-E680-------------------------------
- INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
- AH = 80h
- Return: ES:DX -> current Unix directory
- AX = length of current directory name
- SeeAlso: AH=00h,AH=81h
- --------O-E681-------------------------------
- INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
- AH = 81h
- ES:DX -> ASCIZ directory name
- Return: nothing
- SeeAlso: AH=00h,AH=80h
- --------O-E6FF-------------------------------
- INT E6 - Linux DOSEMU - TERMINATE
- AH = FFh
- SeeAlso: AH=00h
- --------r-E7---------------------------------
- INT E7 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-E8---------------------------------
- INT E8 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-E9---------------------------------
- INT E9 - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-EA---------------------------------
- INT EA - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-EB---------------------------------
- INT EB - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------r-EC---------------------------------
- INT EC - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC
- BASIC.COM/BASICA.COM do not restore vector on termination
- --------N-EC---------------------------------
- INT EC - used by Alloy NTNX
- --------r-EC---------------------------------
- INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
- AX = function number (0000h to 0140h)
- STACK: DWORD address to return to
- any arguments required by function
- Return: STACK: return address popped, but otherwise unchanged
- Desc: this is the interface from applications to the runtime system by Exact
- Automatisering B.V. of the Netherlands. By using this interrupt,
- it can provide DLL-style capabilities under MS-DOS.
- Note: the interrupt handler removes the return address and flags placed on
- the stack by the INT EC, then jumps to the appropriate function
- --------r-ED---------------------------------
- INT ED - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- INT 80 through INT ED are modified but not restored by Direct Access
- v4.0, and may be left dangling by other programs written with the
- same version of compiled BASIC
- SeeAlso: INT EC"BASIC",INT EE"BASIC"
- --------r-EE---------------------------------
- INT EE - IBM ROM BASIC - used while in interpreter
- Notes: called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
- BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT ED"BASIC",INT EE"BASIC"
- --------r-EF---------------------------------
- INT EF - BASIC - ORIGINAL INT 09 VECTOR
- Note: BASIC.COM/BASICA.COM do not restore vector on termination
- SeeAlso: INT EE"BASIC",INT F0"BASIC"
- --------O-EF----CX00C8-----------------------
- INT EF - GEM - AES INTERFACE
- CX = 00C8h
- DX = 0000h
- ES:BX -> AES parameter block (see #04064)
- SeeAlso: INT EF/CX=00C9h,INT EF/CX=0473h
-
- Format of AES parameter block:
- Offset Size Description (Table 04064)
- 00h DWORD -> control array (see #04065)
- 04h DWORD -> global variables (15 WORDs)
- 08h DWORD -> integer input parameters
- 0Ch DWORS -> buffer for integer results
- 10h DWORD -> address (DWORD) input parameters
- 14h DWORD -> buffer for address (DWORD) results
- SeeAlso: #04066
-
- Format of AES control array:
- Offset Size Description (Table 04065)
- 00h WORD function number (000Ah-0084h)
- 02h WORD number of words of integer input parameters
- 04h WORD number of words available for integer results
- 06h WORD number of words of address input parameters
- 08h WORD number of words available for address results
- SeeAlso: #04064
- --------O-EF----CX00C9-----------------------
- INT EF - GEM - AES INTERFACE
- CX = 00C9h
- DX = 0000h
- ES:BX -> AES parameter block (see #04064)
- SeeAlso: INT EF/CX=00C8h,INT EF/CX=0473h
- --------O-EF----CX0473-----------------------
- INT EF - GEM - VDI INTERFACE
- CX = 0473h
- DS:DX -> GEM VDI parameter block (see #04066)
- Note: if installed, one of the following ASCII signatures will appear two
- bytes after the INT EF entry point:
- "GEMVDI" GEM VDI (but not AES) is present
- "GEMAES" GEM/ViewMAX VDI and AES are both present
- "ViewMAX" ViewMAX VDI (only) is present
- each of the above is followed by an ASCIZ number indicating the
- version ("10" for GEM/1 AES and VDI; "20" for GEM/2,GEM/3,ViewMAX
- AES and GEM/2 VDI; "23" for GEM/3 VDI; and "1" for ViewMAX VDIs)
- SeeAlso: INT EF/CX=00C8h,INT EF/CX=00C9h
- Index: installation check;GEM
-
- Format of VDI parameter block:
- Offset Size Description (Table 04066)
- 00h DWORD -> control array (see #04067)
- 08h DWORD -> integer parameters
- 0Ch DWORD -> (x,y) pair parameters
- 10h DWORD -> integer results
- 14h DWORD -> (x,y) pair results
- SeeAlso: #04064
-
- Format of VDI control array:
- Offset Size Description (Table 04067)
- 00h WORD (call) function number (0001h-0084h)
- 02h WORD (call) number of words of pair parameters
- 04h WORD (ret) number of words of pair results
- 06h WORD (call) number of words of integer parameters
- 08h WORD (ret) number of words of integer results
- 0Ah WORD subfunction number
- 0Ch WORD graphics handle
- 0Eh DWORD (call) -> pointer parameter
- 12h DWORD (ret) -> pointer result
- SeeAlso: #04066
- --------r-F0---------------------------------
- INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
- Note: BASICA.COM does not restore vector on termination
- SeeAlso: INT EF"BASIC"
- --------*-F1---------------------------------
- INT F1 - reserved for user interrupt
- --------s-F1---------------------------------
- INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
- DS:BX -> '$'-terminated text string
- Return: nothing
- Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
- --------s-F1---------------------------------
- INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
- SeeAlso: INT F2"SPEECH"
- --------U-F1---------------------------------
- INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
- Return: AX:BX -> data area
- Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
- and COM2 in software
- Note: The installation check consists of testing for the following signature
- immediately preceding the interrupt handler: "JWBtvv" where 't' is
- either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
- version number
- Index: installation check;AQUEDUCT|installation check;PIPELINE
- --------N-F1---------------------------------
- INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
- Note: if this vector contains the value 5774654Eh ("NetW"), the remote boot
- BIOS extension is active, and access to the floppy disk is redirected
- to an image file in the server's SYS:LOGIN directory
- SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
- --------v-F1---------------------------------
- INT F1 - VIRUS - "Violetta" - ???
- Note: used but not chained by virus
- SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
- ----------F101-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
- AH = 01h
- ES:BX -> buffer for CAPI's use (refer to note below)
- CX = minimum number of pending messages
- DX = maximum simultaneous Level 3 connections
- SI = maximum concurrent received B3 data blocks
- DI = maximum B3 data block size
- Return: AX = CAPI-assigned application ID
- 0000h on error
- BX = error number
- 1001h registration error
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- the CAPI interrupt handler begins with a header which is nearly
- identical to the IBM Interrupt Sharing Protocol header
- (see #02568 at INT 2D"AMIS"), except that the short jump instruction
- to a hardware reset handler at offset 09h is replaced by the
- signature bytes "IA"
- the maximum length of a message is fixed at 180 bytes; the standard
- document suggests using CX=10, DI=1, SI=7, and DI=130 for
- applications which use only a single connection and standard
- protocols
- the total size of the application-provided buffer must be at least
- 180*CX + DX*SI*DI bytes
- SeeAlso: AH=02h,INT F1/AL=01h
- Index: installation check;Common ISDN API
- ----------F1--01-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
- AL = 01h
- AH = CAPI version number * 10 (14h for v2.0)
- ES:BX -> buffer for CAPI's use (refer to note below)
- CX = number of bytes for message buffer
- DX = maximum simultaneous logical (Level 3) connections
- SI = maximum concurrent received B3 data blocks (min. 2)
- DI = maximum B3 data block size (up to 2048 bytes)
- Return: AX = CAPI-assigned application ID
- 0000h on error
- BX = error number
- 1001h registration error
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- the CAPI interrupt handler begins with a header (see #04068) which is
- nearly identical to the IBM Interrupt Sharing Protocol header
- (see #02568 at INT 2D"AMIS"), except that the short jump instruction
- to a hardware reset handler at offset 09h is zeroed out and the
- entire header is inexplicably shortened by one byte
- the standard document suggests using 1024 + (1024*DX) bytes for the
- message buffer for typical applications
- the total size of the application-provided buffer must be at least
- CX + DX*SI*DI bytes
- SeeAlso: AH=01h,INT F1/AL=02h
- Index: installation check;Common ISDN API
-
- Format of CAPI v2.0 interrupt handler entry point:
- Offset Size Description (Table 04068)
- 00h 2 BYTEs short jump to actual start of interrupt handler, immediately
- following this data block (EBh 0Fh)
- 02h DWORD address of next handler in chain
- 06h WORD signature 424Bh
- 08h BYTE EOI flag (80h)
- 80h primary hardware interrupt handler (will issue EOI)
- 09h 2 BYTEs reserved (0)
- (is short jump to hardware reset routine in ISP header)
- 0Bh 4 BYTEs signature "CAPI"
- 0Fh 2 BYTEs two-digit CAPI version number in ASCII ('20')
- SeeAlso: #02568 at INT 2D
- ----------F102-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
- AH = 02h
- DX = application ID (see AH=01h)
- Return: AX = status (0000h,1002h) (see #04069)
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=01h,INT F1/AL=02h
-
- (Table 04069)
- Values for CAPI v1.1 error code:
- 0000h successful
- 1001h registration error
- 1002h invalid application ID
- 1003h message too small or incorrectly coded message number
- 1004h invalid command or subcommand
- 1005h message queue full
- 1006h message queue empty
- 1007h message(s) lost due to queue overflow
- 1008h error uninstalling
- SeeAlso: #04070
- ----------F1--02-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
- AL = 02h
- AH = CAPI version number * 10 (14h for v2.0)
- DX = application ID (see INT F1/AL=01h)
- Return: AX = status (0000h,11xxh) (see #04070)
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h
-
- (Table 04070)
- Values for CAPI v2.0 error code:
- 0000h successful
- 1001h too many applications
- 1002h logical block size too small (must be at least 128 bytes)
- 1003h buffer > 64K
- 1004h message buffer too small (minimum 1024 bytes)
- 1005h too many logical connections requested
- 1006h reserved
- 1007h could not register because CAPI busy, try again
- 1008h OS resource unavailable (out of memory, etc.)
- 1009h COMMON-ISDN-API not installed
- 100Ah controller does not support external equipment
- 100Bh controller supports only external equipment
- 1101h invalid application ID
- 1102h illegal command or subcommand, or message too short
- 1103h message queue full
- 1104h queue empty
- 1105h queue overflowed (message lost)
- 1106h unknown notification parameter
- 1107h could not accept message because CAPI busy, try again
- 1108h OS resource unavailable (out of memory, etc.)
- 1109h COMMON-ISDN-API not installed
- 110Ah controller does not support external equipment
- 110Bh controller supports only external equipment
- 2001h message not supported in current state
- 2002h illegal controller/PLCI/NCCI
- 2003h out of PLCI
- 2004h out of NCCI
- 2005h out of LISTEN
- 2006h out of FAX resources (T.30 protocol)
- 2007h illegal message parameter coding
- 3001h unsupported B1 protocol
- 3002h unsupported B2 protocol
- 3003h unsupported B3 protocol
- 3004h unsupported B1 protocol parameter
- 3005h unsupported B2 protocol parameter
- 3006h unsupported B3 protocol parameter
- 3007h unsupported B protocol combination
- 3008h NCPI not supported
- 3009h unknown CIP value
- 300Ah unsupported flags (reserved bits set)
- 300Bh unsupported facility
- 300Ch data length not supported by current protocol
- 300Dh reset procedure not supported by current protocol
- SeeAlso: #04069
- ----------F103-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
- AH = 03h
- DX = application ID (see AH=01h)
- ES:BX -> message to be sent (see #04071)
- Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #04069)
- Notes: the caller is required to provide at least 512 bytes of stack space
- the message buffer may be reused as soon as this call returns
- SeeAlso: AH=01h,AH=04h,INT F1/AL=03h
-
- Format of CAPI message:
- Offset Size Description (Table 04071)
- 00h WORD total message length, including header
- 02h WORD application ID (see AH=01h)
- 04h BYTE command (see #04072,#04073)
- 05h BYTE subcommand (see #04072,#04073)
- 06h WORD message sequence number
- 0000h-7FFFh messages from application to CAPI (and replies)
- 8000h-FFFFh messages from CAPI to application (and replies)
- 08h var message data (max 172 bytes for v1.1 only)
-
- (Table 04072)
- Values for CAPI v1.1 message command/subcommand:
- Cmd/SubCmd Name Description
- 01h/00h RESET-B3-REQ request resetting of a Level 3 connection
- 01h/01h RESET-B3-CONF confirm Level 3 connection reset
- 01h/02h RESET-B3-IND indication from CAPI that Level 3 conn. reset
- 01h/03h RESET-B3-RESP confirm receipt of RESET-B3-IND
- 02h/00h CONNECT-REQ establish B-channel connection
- 02h/01h CONNECT-CONF confirm start of connection establishment
- 02h/02h CONNECT-IND indication from CAPI of incoming connection
- 02h/03h CONNECT-RESP accept incoming connection
- 03h/02h CONNECT-ACTIVE-IND indication that B-channel connection complete
- 03h/03h CONNECT-ACTIVE-RESP confirm connection-complete indication
- 04h/00h DISCONNECT-REQ request shutdown of B-channel connection
- 04h/01h DISCONNECT-CONF confirm shutdown of B-channel connection
- 04h/02h DISCONNECT-IND indication that B-channel is shutting down
- 04h/03h DISCONNECT-RESP confirm that application knows of shutdown
- 05h/00h LISTEN-REQ enable indication of incoming connections
- 05h/01h LISTEN-CONF confirm enabling of incoming conn. indication
- 06h/00h GET-PARAMS-REQ request B-channel parameters
- 06h/01h GET-PARAMS-CONF return B-channel parameters
- 07h/00h INFO-REQ set B-channel info to be signalled to app
- 07h/01h INFO-CONF confirm B-channel info signalling
- 07h/02h INFO-IND signal B-channel events to application
- 07h/03h INFO-CONF confirm receipt of INFO-IND
- 08h/00h DATA-REQ send D-channel data
- 08h/01h DATA-CONF confirm receipt of DATA-REQ
- 08h/02h DATA-IND receive D-channel data
- 08h/03h DATA-RESP confirm receipt fo DATA-IND
- 09h/00h CONNECT-INFO-REQ request connection information
- 09h/01h CONNECT-INFO-CONF return connection information
- 40h/00h SELECT-B2-PROTOCOL-REQ select Level 2 protocol
- 40h/01h SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ
- 80h/00h SELECT-B3-PROTOCOL-REQ select Level 3 protocol
- 80h/01h SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ
- 81h/00h LISTEN-B3-REQ enable notification of incoming Level 3 calls
- 81h/01h LISTEN-B3-CONF confirm receipt of LISTEN-B3-REQ
- 82h/00h CONNECT-B3-REQ establish Level 3 connection
- 82h/01h CONNECT-B3-CONF confirm start of connection establishment
- 82h/02h CONNECT-B3-IND indication of incoming Level 3 connection
- 82h/03h CONNECT-B3-RESP accept incoming connection
- 83h/02h CONNECT-B3-ACTIVE-IND indication that Level 3 connection complete
- 83h/03h CONNECT-B3-ACTIVE-RESP confirm connection-complete indication
- 84h/00h DISCONNECT-B3-REQ request shutdown of Level 3 connection
- 84h/01h DISCONNECT-B3-CONF confirm shutdown of Level 3 connection
- 84h/02h DISCONNECT-B3-IND indication that Level 3 is shutting down
- 84h/03h DISCONNECT-B3-RESP confirm that application knows of shutdown
- 85h/00h GET-B3-PARAMS-REQ request Level 3 parameters
- 85h/01h GET-B3-PARAMS-CONF return Level 3 parameters
- 86h/00h DATA-B3-REQ send data on Level 3
- 86h/01h DATA-B3-CONF confirm sending of Level 3 data
- 86h/02h DATA-B3-IND indication of incoming Level 3 data
- 86h/03h DATA-B3-RESP confirm receipt of Level 3 data
- 87h/02h HANDSET-IND indication of Handset events
- 87h/03h HANDSET-RESP confirm receipt of Handset event
- FFh/00h MANUFACTURER-REQ vendor-specific request
- FFh/01h MANUFACTURER-CONF vendor-specific request confirmation
- FFh/02h MANUFACTURER-IND vendor-specific notification
- FFh/03h MANUFACTURER-RESP vendor-specific notification confirmation
- SeeAlso: #04071,#04073
- ----------F1--03-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
- AL = 03h
- AH = CAPI version number * 10 (14h for v2.0)
- DX = application ID (see INT F1/AL=01h)
- ES:BX -> message to be sent (see #04071)
- Return: AX = status (0000h,11xxh) (see #04070)
- Notes: the caller is required to provide at least 512 bytes of stack space
- the message buffer may be reused as soon as this call returns
- SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h
-
- (Table 04073)
- Values for CAPI v2.0 message command/subcommand:
- Cmd/SubCmd Name Description
- 01h/80h ALERT_REQ indicate compatibility with incoming calls
- 01h/81h ALERT_CONF confirm receipt of ALERT_REQ
- 02h/80h CONNECT_REQ establish B-channel connection
- 02h/81h CONNECT_CONF confirm start of connection establishment
- 02h/82h CONNECT_IND indication from CAPI of incoming connection
- 02h/83h CONNECT_RESP accept incoming connection
- 03h/82h CONNECT_ACTIVE_IND indication that B-channel connection complete
- 03h/83h CONNECT_ACTIVE_RESP confirm connection-complete indication
- 04h/80h DISCONNECT_REQ request shutdown of B-channel connection
- 04h/81h DISCONNECT_CONF confirm shutdown of B-channel connection
- 04h/82h DISCONNECT_IND indication that B-channel is shutting down
- 04h/83h DISCONNECT_RESP confirm that application knows of shutdown
- 05h/80h LISTEN_REQ enable signalling on incoming events
- 05h/81h LISTEN_CONF confirm enabling of incoming event signalling
- 08h/80h INFO_REQ send protocol information for physical connect
- 08h/81h INFO_CONF confirm INFO_REQ
- 08h/82h INFO_IND indicate event for physical connection
- 08h/83h INFO_CONF confirm receipt of INFO_IND
- 41h/80h SELECT_B_PROTOCOL_REQ change protocol on already-active connect
- 41h/81h SELECT_B_PROTOCOL_CONF confirm receipt of SELECT_B_PROTOCOL_REQ
- 80h/80h FACILITY_REQ control optional facilities
- 80h/81h FACILITY_CONF confirm acceptance of FACILITY_REQ
- 80h/82h FACILITY_IND indicate facility-dependent event
- 80h/83h FACILITY_RESP confirm receipt of FACILITY_IND
- 82h/80h CONNECT_B3_REQ establish Level 3 connection
- 82h/81h CONNECT_B3_CONF confirm start of connection establishment
- 82h/82h CONNECT_B3_IND indication of incoming Level 3 connection
- 82h/83h CONNECT_B3_RESP accept incoming connection
- 83h/82h CONNECT_B3_ACTIVE_IND indication that Level 3 connection complete
- 83h/83h CONNECT_B3_ACTIVE_RESP confirm connection-complete indication
- 84h/80h DISCONNECT_B3_REQ request shutdown of Level 3 connection
- 84h/81h DISCONNECT_B3_CONF confirm shutdown of Level 3 connection
- 84h/82h DISCONNECT_B3_IND indication that Level 3 is shutting down
- 84h/83h DISCONNECT_B3_RESP confirm that application knows of shutdown
- 85h/80h GET_B3_PARAMS_REQ request Level 3 parameters
- 85h/81h GET_B3_PARAMS_CONF return Level 3 parameters
- 86h/80h DATA_B3_REQ send data on Level 3
- 86h/81h DATA_B3_CONF confirm sending of Level 3 data
- 86h/82h DATA_B3_IND indication of incoming Level 3 data
- 86h/83h DATA_B3_RESP confirm receipt of Level 3 data
- 87h/80h RESET_B3_REQ request resetting of a logical connection
- 87h/81h RESET_B3_CONF confirm logical connection reset
- 87h/82h RESET_B3_IND indication from CAPI that logical conn. reset
- 87h/83h RESET_B3_RESP confirm receipt of RESET_B3_IND
- 88h/82h CONNECT_B3_T90_ACTIVE_IND indicate switch from T.70 to T.90
- 88h/83h CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND
- FFh/80h MANUFACTURER_REQ vendor-specific request
- FFh/81h MANUFACTURER_CONF vendor-specific request confirmation
- FFh/82h MANUFACTURER_IND vendor-specific notification
- FFh/83h MANUFACTURER_RESP vendor-specific notification confirmation
- SeeAlso: #04071,#04072
- ----------F104-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
- AH = 04h
- DX = application ID (see AH=01h)
- Return: AX = status (0000h,1002h,1006h,1007h) (see #04069)
- ES:BX -> message if successful (see #04071)
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- the returned message may be overwritten by the next call to this
- function
- SeeAlso: AH=03h
- ----------F1--04-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
- AL = 04h
- AH = CAPI version number * 10 (14h for v2.0)
- DX = application ID (see AH=01h)
- Return: AX = status (0000h,11xxh) (see #04070)
- ES:BX -> message if successful (see #04071)
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- the returned message may be overwritten by the next call to this
- function
- SeeAlso: AH=04h,INT F1/AL=03h
- ----------F105-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
- AH = 05h
- DX = application ID (see AH=01h)
- ES:BX -> signal handler or 0000h:0000h to disable
- Return: AX = status (0000h,1002h) (see #04069)
- Notes: the caller is required to provide at least 512 bytes of stack space
- the signal handler is called as though it were an interrupt, with
- interrupts disabled; the handler must preserve all registers and
- return with an IRET
- SeeAlso: AH=01h
- ----------F1--05-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
- AL = 05h
- AH = CAPI version number * 10 (14h for v2.0)
- DX = application ID (see AH=01h)
- ES:BX -> signal handler or 0000h:0000h to disable
- SI:DI = parameter to pass to signal handler
- Return: AX = status (0000h,11xxh) (see #04070)
- Notes: the caller is required to provide at least 512 bytes of stack space
- the signal handler is called as though it were an interrupt, with
- interrupts disabled and DX,SI,DI set as they were when this function
- was called; the handler must preserve all registers and return with
- an IRET
- the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and
- CAPI_SET_SIGNAL
- SeeAlso: INT F1/AL=01h
- ----------F106-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
- AH = 06h
- BX = force flag
- 0000h normal uninstall
- 0001h forced uninstall
- Return: AX = status (0000h,1008h) (see #04069)
- Desc: reset ISDN controller, close all ISDN Level 1 connections except for
- telephone connections
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: INT F1/AL=01h,INT F1/AH=01h
- ----------F1F0-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
- AH = F0h
- ES:BX -> 64-byte buffer for manufacturer identification information
- Return: ES:BX buffer filled with ASCIZ idnetification string
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0h
- ----------F1--F0-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
- AL = F0h
- AH = CAPI version number * 10 (14h for v2.0)
- ES:BX -> 64-byte buffer for manufacturer identification information
- Return: ES:BX buffer filled with ASCIZ idnetification string
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFh
- ----------F1F1-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
- AH = F1h
- ES:BX -> 64-byte buffer for CAPI version number
- Return: ES:BX buffer filled with ASCIZ version string
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFh
- ----------F1--F1-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
- AL = F1h
- AH = CAPI version number * 10 (14h for v2.0)
- Return: AH = CAPI major version number
- AL = CAPI minor version number
- DH = vendor-specific major version
- DL = vendor-specific minor version
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFh
- ----------F1F2-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
- AH = F2h
- ES:BX -> 64-byte buffer for CAPI serial number
- Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
- string if no serial number
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFh
- ----------F1--F2-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
- AL = F2h
- AH = CAPI version number * 10 (14h for v2.0)
- ES:BX -> 64-byte buffer for CAPI serial number
- Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
- string if no serial number
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F3h
- ----------F1--F3-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
- AL = F3h
- AH = CAPI version number * 10 (14h for v2.0)
- ES:BX -> 64-byte buffer for CAPI capabilities (see #04074)
- CX = controller number (01h-06h) or 0000h to get number of controllers
- Return: AX = status (0000h,11xxh) (see #04070)
- ES:BX buffer filled if successful
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh
-
- Format of CAPI v2.0 capabilities:
- Offset Size Description (Table 04074)
- 00h WORD number of installed controllers
- 02h WORD number of supported B channels
- 04h DWORD global options (see #04075)
- 08h DWORD B1 protocol support flags (see #04076)
- 0Ch DWORD B2 protocol support flags (see #04077)
- 10h DWORD B3 protocol support flags (see #04078)
- 14h 24 BYTEs reserved for CAPI use
- 2Ch 20 BYTEs vendor-specific information
-
- Bitfields for CAPI v2.0 global options:
- Bit(s) Description (Table 04075)
- 0 internal controller supported
- 1 external controller supported
- 2 handset supported (only if bit 1 also set)
- 3 DTMF supported
- 4-31 reserved (0)
- SeeAlso: #04074
-
- Bitfields for CAPI v2.0 B1 protocol support:
- Bit(s) Description (Table 04076)
- 0 64k bps with HDLC framing (required, always set)
- 1 64k bps bit-transparent operation with network byte framing
- 2 V.110 asynchronous with start/stop byte framing
- 3 V.110 synchronous with HDLC framing
- 4 T.30 modem for group 3 FAX
- 5 64k bps inverted with HDLC framing
- 6 56k bps bit-transparent operation with network byte framing
- 7-31 reserved (0)
- SeeAlso: #04074
-
- Bitfields for CAPI v2.0 B2 protocol support:
- Bit(s) Description (Table 04077)
- 0 ISO 7776 (X.75 SLP) (required, always set)
- 1 transparent
- 2 SDLC
- 3 Q.921 LAPD (D-channel X.25)
- 4 T.30 for group 3 FAX
- 5 point-to-point protocol (PPP)
- 6 transparent (ignoring B1 framing errors)
- 7-31 reserved (0)
- SeeAlso: #04074
-
- Bitfields for CAPI v2.0 B3 protocol support:
- Bit(s) Description (Table 04078)
- 0 transparent (required, always set)
- 1 T.90NL with T.70NL compatibility
- 2 ISO 8208 (X.25 DTE-DTE)
- 3 X.25 DCE
- 4 T.30 for group 3 FAX
- 5-31 reserved (0)
- SeeAlso: #04074
- ----------F1FF-------------------------------
- INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
- AH = FFh
- other registers vendor-specific
- Return: registers vendor-specific
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFh
- ----------F1--FF-----------------------------
- INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
- AL = FFh
- AH = CAPI version number * 10 (14h for v2.0)
- other registers vendor-specific
- Return: registers vendor-specific
- Range: INT 00 to INT FF, selectable by program parameter
- Notes: the caller is required to provide at least 512 bytes of stack space
- SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2h
- --------*-F2---------------------------------
- INT F2 - reserved for user interrupt
- --------s-F2---------------------------------
- INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
- SeeAlso: INT F1"SPEECH"
- --------N-F2---------------------------------
- INT F2 - NetWare Remote Boot - ORIGINAL INT 13
- SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"
- ----------F2---------------------------------
- INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
- AH = function number (see #04079)
- ???
- Return: ???
- Program: ImageCapture is a product of International Computers
- SeeAlso: INT F3"ICCTSR"
-
- (Table 04079)
- Values for ImageCapture function:
- 01h power up
- 02h power down
- 03h set controls
- 04h capture image
- 05h display image
- 06h read file
- 07h write file
- 08h write array
- 09h read pixel
- 0Ah write pixel
- 0Bh check if VGA present
- 0Ch set video mode
- 0Dh check for keystroke
- 0Eh delay
- --------*-F3---------------------------------
- INT F3 - reserved for user interrupt
- SeeAlso: INT F2"user",INT F4"user"
- --------s-F3---------------------------------
- INT F3 - SoundBlaster - POINTER TO ECHO VALUE
- Note: this is not a vector, but a pointer to a DWORD containing the echo
- value selected with SET-ECHO.EXE
- SeeAlso: INT 2F/AX=FBFBh/ES=0000h
- ----------F3---------------------------------
- INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
- Program: ImageCapture is a product of International Computers
- SeeAlso: INT F2"ICCTSR"
- --------N-F3---------------------------------
- INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
- SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"
- --------*-F4---------------------------------
- INT F4 - reserved for user interrupt
- SeeAlso: INT F3"user",INT F5"user"
- --------T-F4---------------------------------
- INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
- SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"
- --------N-F4---------------------------------
- INT F4 - NetWare Remote Boot - ???
- SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"
- --------*-F5---------------------------------
- INT F5 - reserved for user interrupt
- SeeAlso: INT F4"user",INT F6"user"
- --------T-F5---------------------------------
- INT F5 - DoubleDOS - ???
- SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"
- --------*-F6---------------------------------
- INT F6 - reserved for user interrupt
- SeeAlso: INT F5"user",INT F7"user"
- --------T-F6---------------------------------
- INT F6 - DoubleDOS - ???
- SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"
- --------*-F7---------------------------------
- INT F7 - reserved for user interrupt
- SeeAlso: INT F6"user"
- --------T-F7---------------------------------
- INT F7 - DoubleDOS - ???
- SeeAlso: INT F6"DoubleDOS"
- ----------F700-------------------------------
- INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
- AH = 00h
- AL = function
- 00h get configuration record
- Return: DS:DX -> configuration record
- 01h set configuration record
- Return: nothing
- 02h get path for option
- DS:DX -> option name
- Return: DS:DX -> path
- 03h determine whether configuration record set
- Return: AX = status
- 0000h set
- 0001h not yet set
- 04h get link state
- Return: AX = state
- 0000h unlinked
- 0001h linked
- Notes: this information is preliminary and still subject to change
- all of the INT F7 calls for FSBBS are used for interprogram
- communication between the BBS kernel and the programs it spawns
- SeeAlso: AH=01h
- ----------F701-------------------------------
- INT F7 - FSBBS 2.0 - USER RECORD
- AH = 01h
- AL = function
- 00h get user record for user currently online
- Return: DS:DX -> user record
- 01h set user record
- DS:DX -> user record
- Return: nothing
- SeeAlso: AH=00h,AH=02h
- ----------F702-------------------------------
- INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
- AH = 02h
- Return: DS:DX -> 8-character blank-padded account name
- SeeAlso: AH=01h
- ----------F703-------------------------------
- INT F7 - FSBBS 2.0 - TERMINAL NUMBER
- AH = 03h
- AL = function
- 00h get terminal index number
- Return: DX = index number
- 01h set terminal index number
- DX = terminal index
- Return: nothing
- ----------F704-------------------------------
- INT F7 - FSBBS 2.0 - PASSDATA BUFFER
- AH = 04h
- AL = function
- 00h get PassData buffer contents
- DS:DX -> buffer for PassData contents
- Return: DS:DX buffer filled
- 01h set PassData contents
- DS:DX -> buffer containing new PassData
- CH = length of data in buffer
- Return: nothing
- ----------F705-------------------------------
- INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
- AH = 05h
- AL = function
- 00h get time remaining
- Return: DX = number of minutes remaining
- 01h get current time
- Return: DS:DX -> 8-character time string
- 02h increment time
- DX = number of additional minutes
- 03h decrement time
- DX = number of minutes
- SeeAlso: AH=06h
- ----------F706-------------------------------
- INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
- AH = 06h
- AL = function
- 00h determine whether function is available
- DX = index of function
- 01h set function availability
- DX = index of function
- ???
- Return: nothing
- SeeAlso: AH=05h,AH=07h
- ----------F707-------------------------------
- INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
- AH = 07h
- AL = function
- 00h get current dump mode
- Return: DL = mode
- 01h set dump mode
- DL = mode
- SeeAlso: AH=06h
- --------*-F8---------------------------------
- INT F8 - reserved for user interrupt
- --------h-F8---------------------------------
- INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT
- Note: normally masked off at 8259 interrupt controller
- SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
- --------T-F8---------------------------------
- INT F8 - DoubleDOS - ???
- --------*-F9---------------------------------
- INT F9 - reserved for user interrupt
- --------T-F9---------------------------------
- INT F9 - DoubleDOS - ???
- --------h-F9---------------------------------
- INT F9 - Sanyo MBC-550/555 - IRQ1 - ???
- Note: documented as "for system use only"; normally enabled at the 8259
- SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
- --------*-FA---------------------------------
- INT FA - reserved for user interrupt
- --------h-FA---------------------------------
- INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT
- Note: this vector is not used on the Tandy 1000TL
- SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
- --------T-FA---------------------------------
- INT FA - DoubleDOS - TURN OFF TIMESHARING
- SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
- ----------FA---------------------------------
- INT FA P - ASM Edit - INSTALLATION CHECK
- Program: ASM Edit is a shareware programmer's editor
- Note: ASM Edit hooks this vector in protected mode to allow DPMI programs
- to detect whether they were run while shelled to DOS from ASM Edit
-
- Format of ASM Edit signature block:
- Offset Size Description (Table 04080)
- 00h BYTE CFh (IRET)
- 01h 8 BYTEs signature "ASM Edit" (no trailing NUL)
- --------*-FB---------------------------------
- INT FB - reserved for user interrupt
- --------h-FB---------------------------------
- INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
- SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
- --------T-FB---------------------------------
- INT FB - DoubleDOS - TURN ON TIMESHARING
- SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
- --------*-FC---------------------------------
- INT FC - reserved for user interrupt
- --------T-FC---------------------------------
- INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
- Return: ES = segment of display buffer
- Desc: determine the address of the virtual screen to which the program
- should write instead of the actual video memory, so that the
- multitasked programs do not interfere with each other's output
- Note: the display buffer may be moved if multitasking is enabled
- SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
- --------h-FC---------------------------------
- INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT
- Note: normally masked off at the 8259 interrupt controller
- SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
- --------*-FD---------------------------------
- INT FD - reserved for user interrupt
- --------T-FD---------------------------------
- INT FD - DoubleDOS - ???
- --------h-FD---------------------------------
- INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER
- SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
- --------S-FD---------------------------------
- INT FD - TFPCX - INSTALLATION CHECK
- AH = function (also see separate entries below)
- Program: TFPCX is an interface between modem and terminal program for packet-
- radio communications
- InstallCheck: test for the string "N5NX" three bytes beyond the interrupt
- handler
- Range: INT FD is the default, but may be changed, so the full installation
- check consists of scanning for the signature
- Note: TFPCX returns AX=FFFFh on any unsupported function call
- SeeAlso: AH=01h,AH=03h,AH=FEh
- --------S-FD01-------------------------------
- INT FD - TFPCX - TEST FOR CHARACTER WAITING
- AH = 01h
- Return: AX = status
- 0000h no characters waiting
- 0001h character available for input
- Program: TFPCX is an interface between modem and terminal program for packet-
- radio communications
- SeeAlso: AH=02h
- --------S-FD02-------------------------------
- INT FD - TFPCX - GET CHARACTER
- AH = 02h
- Return: AL = character
- Notes: this call is only allowed if AH=01h indicated that a character is
- available
- all available characters should be read before sending any additional
- characters
- SeeAlso: AH=01h,AH=03h
- --------S-FD03-------------------------------
- INT FD - TFPCX - OUTPUT CHARACTER
- AH = 03h
- AL = character to send
- Return: nothing
- SeeAlso: AH=02h
- --------S-FDFE-------------------------------
- INT FD - TFPCX - GET VERSION
- AH = FEh
- Return: AH = major version
- AL = minor version
- Program: TFPCX is an interface between modem and terminal program for packet-
- radio communications
- SeeAlso: AH=01h,AH=03h
- --------B-FE---------------------------------
- INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
- Note: the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
- is the last fourth of the interrupt vector table. If the processor
- is returned to real mode via a hardware reset (the only possibility
- on an 80286, though there are a number of ways of generating one),
- then the BIOS startup code stacks three words on its scratch stack
- before determining that a return to real mode has been requested.
- As a result, INT FE and INT FF are corrupted.
- SeeAlso: INT FF"XT286"
- --------T-FE---------------------------------
- INT FE - DoubleDOS - GIVE UP TIME
- AL = number of 55ms time slices to give away
- Return: after other program (if active) has run
- SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
- --------G-FE---------------------------------
- INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
- SeeAlso: INT 3F
- --------h-FE---------------------------------
- INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT
- Note: normally masked off at the 8259 interrupt controller
- SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
- --------B-FF---------------------------------
- INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
- Note: (see INT FE"XT286")
- SeeAlso: INT FE"XT286"
- --------b-FF---------------------------------
- INT FF - Z100 - WARM BOOT
- SeeAlso: INT 40"Z100"
- --------h-FF---------------------------------
- INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT
- Note: normally masked off at the 8259 interrupt controller
- SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
- --------Q-FF---------------------------------
- INT FF U - QEMM-386.SYS v6.0+ - internal
- Notes: requires that a byte in the conventional-memory stub be set to the
- desired function number (00h through 0Ch)
- SeeAlso: #04081
-
- (Table 04081)
- Values for QEMM internal functions:
- 00h reflect back to Virtual86-mode interrupt handler (default)
- 01h ???
- 02h access DR7???
- 03h QPI upcall (see INT 67/AH=3Fh)
- 04h ???
- 05h ???
- 06h INT 15/AH=87h
- 07h EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
- 08h ???
- 09h QEMM exception handler
- 0Ah XMS services (see INT 2F/AX=4310h"XMS")
- 0Bh Virtual DMA Services (see INT 4B/AX=8102h)
- 0Ch ???
- --------v-FF---------------------------------
- INT FF - VIRUS - "Violetta" - ???
- Note: used but not chained by virus
- SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
- --------V-FF----BX0000-----------------------
- INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
- BX = 0000h
- DS:SI -> FORTH program counter
- SS:BP -> FORTH parameter stack
- SS:SP -> FORTH return stack
- DS:DX -> FORTH video parameter area
- Desc: called to inform graphics driver of any status changes such as video
- mode changes, character color changes, graphics XOR mode turned on
- or off, etc.; also used as an installation check
- Index: installation check;PC/FORTH
- --------V-FF---------------------------------
- INT FF - PC/FORTH - GRAPHICS API
- BX = function number
- 0001h function REDRAW
- 0002h function !PEL
- 0003h function @PEL
- 0004h function LINE
- 0005h function ARC
- 0006h function @BLOCK
- 0007h function !BLOCK
- 0008h function FLOOD
- DS:SI -> FORTH program counter
- SS:BP -> FORTH parameter stack
- SS:SP -> FORTH return stack
- details of parameters not available
- Return: AX,BX,CX,DX,ES,DI may be destroyed
- Note: these functions all display an error message if the graphics routines
- are not resident
- --------!---Admin----------------------------
- Highest Table Number = 04081
- --------!---FILELIST-------------------------
- Please redistribute all of the files comprising the interrupt list (listed at
- the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
- quartet of archives named INTER60A through INTER60D (preferably the original
- authenticated PKZIP archives), the utility programs in a fifth archive
- called INTER60E.ZIP, the WinHelp-related programs in a sixth archive
- named INTER60F.ZIP, and the non-WinHelp hypertext programs in a seventh archive
- names INTER60G.ZIP.
-
- Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999 Ralf Brown
- --------!---CONTACT_INFO---------------------
- Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
- FIDO: Ralf Brown 1:129/26.1
-